Я получил аппаратный сервер 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» или из «top», это не добавит до 100%.
Мне нужно понять, почему объем памяти так низок?
Обновление (29 февраля 2012 г.):
Позвольте мне разбить эту проблему на две части:
1) Система имеет меньше свободной памяти.
2) Идентификациякуда ушла использованная память.
Для 1) я понимаю;если системе не хватает свободной памяти, мы можем наблюдать постепенное снижение производительности.В какой-то момент подкачка даст системе дополнительную свободную память, что приведет к восстановлению производительности системы.Поправьте меня, если я ошибаюсь.
Для 2) Теперь я хочу понять, куда исчезла использованная память.Если я суммирую% MEM в выводе "ps -A v" или "top -n 1 -b", то получится не более 50%.Так где же учесть оставшиеся 40% нерасследуемой памяти.У нас есть свои собственные модули ядра на сервере.Если у этих модулей утечка памяти, они будут учтены.Можно ли узнать количество утечек в модулях ядра.