Я запускаю машину CentOS 5.7 64 с оперативной памятью 24 ГБ и работаю с ядром 2.6.18-274.12.1.el5.
На этой машине в качестве дополнительных приложений работают только Nginx, php-fpm и Xcache.
Примерно за 3 недели мое поведение с памятью на этой машине изменилось, и я не могу объяснить, почему. Нет бегающих кронов, которые промывают что-нибудь подобное. Также во время этих сбросов не происходит удаления / изменения большого количества файлов.
«Кэшированная» память сбрасывается примерно каждые несколько часов, но между сбросами никогда не бывает установленного промежутка, это указывает мне на то, что вместо этого достигается какое-то узкое место. Также всегда кажется, что общее использование памяти достигает примерно 18 ГБ, но опять же, не всегда точно 18 ГБ.
Это график использования моей памяти:
Как вы можете видеть на графике, «буферы» всегда остаются более или менее одинаковыми, в основном отбрасывается «кеш».
Бег vmstat -m
Я вывел данные об использовании памяти непосредственно перед и сразу после падения памяти. Результат здесь: http://pastebin.com/diff.php?i=hJqZqztm «старая версия» - раньше, «новая версия» - после отбрасывания.
Около 3 недель назад мой сервер разбился во время мощной DDOS-атаки, после того как я перезагрузил машину, это странное поведение началось. Я проверил кучу журналов, снова перезапустил машину и не могу найти никаких указаний на то, что изменилось.
Во время этих «кеш-памяти» уменьшается использование iNode одновременно.
Кто-нибудь знает, что может вызывать такое поведение? Очевидно, моя оперативная память не заполнена, поэтому мне любопытно, почему это могло происходить.
Что означает зубчатый график зафиксированной памяти?
Сокеты создают inode, когда соединение accept () - ed, поэтому поведение inode может быть связано с массивным всплеском открываемых или закрытых соединений, соответственно. Это может произойти, когда (как в связанном вопросе) logrotate убивает кучу процессов FastCGI. Не уверен, что это применимо к php-fpm.
Просто дикая теория, которая на самом деле не объясняет, почему кеш очищается одновременно. Тем не менее, стоит ли посмотреть?
решил это, поставив vm.zone_reclaim_mode = 0