Помогите, плз, разобраться с утечкой памяти. Cервер небольшой фирмы собран на 2хP3-900, 1Gb RAM, Debian(squid, bind9, Rejik3, apache, postfix, kernel- 2.4.30 с kernel.org). Никакой особеной нагрузки у сервера нет - просто раздача локальных IP и организация доступа к Инету. После какого-то очередного обновления системы (libc, postfix, bind) появилась такая особенность - свободная память в процессе работы медленно уменьшается и достигает через неделю десятков мегов, со всеми сопутствующими эффектами, против 930 мегов при запуске сервера. При перезапуске сервера все ок. Анализ memstat за несколько суток ничего не дал, перезапуск сервисов дает очень незначительное изменение. Остановка всех сервисов тоже не дает никаких заметных эффектов.
Я бы сказал, что это нормально, за исключением:
> Остановка всех сервисов тоже не дает никаких заметных эффектов.
То-есть, сервисы остановили, а память не освободилась? Тогда это больше всего похоже на утечку памяти в ядре или в модулях ядра.
Лечится, очевидно, обновлением.
Так ведь установлено последнее ядро 2.4.30, куда же еще обновлять? И аналогичная ситуация на давно работающей машине с очень старым ядром 2.2.18. То же Linux Debian, bind8, ipchains. Работала 2 года, раздавала IP и фильтровала трафик, все было нормально и вдруг начала утекать память и выгружаться сервисы.
ps axv|more
704 ? S 34:41 903 586 19473 17148 13.5 (squid)top иногда не показывает реальное использование памяти.
Кстати его тоже попробуйте, и нажмите Shift+MСлышал еще, что-то можно почерпнуть в
/proc/slabinfoПамять может утекать например в disk/network буферы и conntrack.
А вообще беспокоится нужно только тогда, когда сервер уходит в своп. Память может использоваться на 100%, для кеширования дисковых данных например, и не это совсем неплохо.