У меня есть небольшой VPS с 6 ГБ ОЗУ, на котором размещено несколько веб-сайтов.
Недавно я заметил, что размер моей кэшированной памяти довольно велик - см. Ниже:
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.1%id, 0.0%wa, 0.2%hi, 0.4%si, 0.0%st
Mem: 6113256k total, 5949620k used, 163636k free, 398584k buffers
Swap: 1048564k total, 104k used, 1048460k free, 3586468k cached
После исследования, есть ли какой-либо способ очистить это или очистить, я наткнулся на команду, которая:
sync; echo 3 > /proc/sys/vm/drop_caches
Я читал, что было бы полезно добавить это в хрон-задачу / задание. Рекомендуется ли этот метод или это может привести к потенциальным проблемам?
Единственное, что меня беспокоит, это то, что я использую одну установку Magento на Memcached - может ли это оказать на нее негативное влияние?
Я, конечно, не профессионал, поэтому был бы очень признателен за совет эксперта.
PS: Мой VPS работает на CentOS 5 x64, и у меня установлен WHM + NGINX.
Удаление ваших кешей, вероятно, повлияет на производительность вашего сервера, поскольку он должен повторно считывать часто используемые данные обратно в кеши после каждого сброса кеша.
Нет реальной причины сбрасывать кеши. Для ядра Linux память, используемая для кеширования, по существу бесплатна и будет передаваться приложениям, когда они в ней нуждаются. Взгляни на этот веб-сайт для получения дополнительной информации.
Что касается данных, хранящихся в memcached - это застраховано от последствий сброса кешей страниц / dentries / inodes.
Как уже говорилось, нет смысла отбрасывать кеши, если у вас нет для этого веских причин. Если вы не видите никаких проблем с производительностью, оставьте все как есть.
Если вы любопытный человек, вы можете настроить параметр vm.vfs_cache_pressure. Значение по умолчанию - 100, что означает, что ядро будет пытаться освободить кеш со справедливой скоростью по сравнению с восстановлением свопа. Увеличение значения приведет к тому, что кэшированная память будет восстанавливаться быстрее, а ее уменьшение приведет к более быстрому восстановлению подкачки, но помните, что именно так ядро агрессивно очищает кеш или подкачку. Фактические результаты варьируются от среды к среде.
Вместо эха 3 вы также можете эхо 1 или 2. Если я правильно помню, эхо 1 очистит кеш страниц, а 2 очистит кеш dentry и inode. 3 очистит кеш-память, кеш-память и кеш-коды.
Нет никакого реального вреда в наличии такого уровня кэшированной ОЗУ. Это то, что делает Linux.
Наблюдаете ли вы прирост производительности после удаления кешей? Если нет, то планировать это не стоит.
Как сторона, вы жестяная банка контролировать содержимое кэша с большей детализацией, используя vmtouch
утилита.