Вот как выглядит график памяти на VPS с CentOS с 512 МБ ОЗУ и nginx / php-fpm / mysqld, обслуживающих (в основном статический) контент для нескольких тысяч посетителей в день.
(это дни на оси х)
Как видите, в кеше и в области буфера это довольно нервно. Кэш-память очищается с нерегулярными интервалами (исключая ответственное задание cron). Обычно, но не всегда, его очищают в точке, где он не может расти больше. Иногда он очищается почти полностью, а иногда только на полпути вниз.
Я пытаюсь понять логику этих чисток. Я ожидал бы, что данные файла будут кэшироваться намного дольше и не увидим никаких других программ, использующих больше памяти, чем обычно, когда очищается кэш памяти.
Это нормальное поведение, или я что-то упустил?
ОБНОВЛЕНИЕ: обновление памяти, кажется, стабилизировало график. По-прежнему видны небольшие капли, но нигде не так много, как до обновления.
Ответы:
Может быть много вещей. Возможно, одна из программ, которые вы запускаете, иногда и на короткое время использует много оперативной памяти. Если на оси x это действительно недели, вам следует выполнить выборку с гораздо более высоким разрешением (например, раз в минуту или даже секунду), чтобы получить больше информации о том, что происходит, что приводит к падению кэша.
ps
иtop
вывод (включая среднюю нагрузку) в течение этого времени также будет полезен.источник
Одной из возможных причин может быть растущий файл, например, журнал, который либо удаляется, сжимается, либо отправляется куда-либо еще, когда он достигает заданного размера.
В любом случае его размер в кеше, возможно, весь, если в вашей ОС отсутствует нагрузка на память, будет удален из кэша, как только будет удален исходный файл.
источник