У меня есть аппаратный сервер Linux, имеющий 16 ГБ физической памяти и работающий с некоторыми приложениями. Этот сервер работает и работает около 365 дней до сих пор, и я наблюдаю, что «free -m» показывает, что память работает на низком уровне.Где моя используемая память исчезла?
total used free shared buffers cached
Mem: 14966 13451 1515 0 234 237
-/+ buffers/cache: 12979 1987
Swap: 4094 367 3727
Я понимаю, что 1987 г. - фактическая свободная память в системе, которая составляет менее 14%. Если я добавлю часть% MEM в выход «ps -A v» или «сверху», она не добавит до 100%.
Мне нужно понять, почему память ушла так низко?
Update (29/Февраль/2012):
Позвольте мне разделить эту проблему на две части:
1) Система, имеющий меньше свободной памяти.
2) Идентификация, куда исчезла используемая память.
Для 1), я понимаю; если система работает на свободной памяти, мы можем наблюдать постепенное ухудшение производительности. В какой-то момент пейджинг даст дополнительную свободную память системе, что приведет к восстановлению производительности системы. Поправьте меня, если я ошибаюсь.
Для 2). Теперь это то, что я хочу понять, где исчезла используемая память. Если я суммирую% MEM в выводе «ps -A v» или «top -n 1 -b», он достигает не более 50%. Итак, где учитывать оставшиеся 40% неисслеживаемой памяти. У нас есть собственные модули ядра на сервере. Если эти модули будут утечки памяти, они будут учитываться. Возможно ли узнать количество утечек в модулях ядра.
Что работает на этом сервере, возможно, это сервер утечки памяти, или это просто тяжелая используемая база данных, которая нуждается в памяти, linux работает бесперебойно даже с 100 МБ памяти, вы не должны паниковать. попробуйте посмотреть результат верхней команды – Kiwy
Я также наблюдаю вывод команды top. Но это не очень помогает.Существует процесс, который занимает около 1,9 Гб памяти; но это тот случай, когда система только что загружена. – Taroko
'1)' абсолютно неверно и распространенное заблуждение. Чем ниже свободная память, тем более равны все остальные, тем выше используемая память. Использование большей памяти * улучшает производительность, поэтому мы добавляем память в системы, чтобы сделать их быстрее. –