Куда делась моя использованная память? - PullRequest
4 голосов
/ 21 февраля 2012

Я получил аппаратный сервер 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% нерасследуемой памяти.У нас есть свои собственные модули ядра на сервере.Если у этих модулей утечка памяти, они будут учтены.Можно ли узнать количество утечек в модулях ядра.

Ответы [ 3 ]

8 голосов
/ 21 февраля 2012

Это не заканчивается. Недостаточно свободной памяти. Но это нормально, так как свободная память совершенно бесполезна. (Свободная память - это память, которая обеспечивает никаких преимуществ. Свободная память - это память, которая была бы просто полезна на вашей полке, как на вашем компьютере.)

Свободная память плохая, бесполезная. Недостаточно свободной памяти - это хорошо, это означает, что ваша система нашла некоторое использование для большей части вашей памяти.

Так что же плохого? Если ваша система медленная , потому что ей не хватает памяти используется .

6 голосов
/ 21 февраля 2012
5 голосов
/ 02 марта 2012

Мне удалось идентифицировать и решить мою проблему.Но это было не без помощи информации, представленной в http://linux -mm.org / Low_On_Memory .

Память в slabinfo для стоматологии составляла около 5 ГБ.После выполнения команды «sync» грязные страницы были синхронизированы с жестким диском, а команда «echo 3> / proc / sys / vm / drop_caches» освободила еще немного памяти, удалив еще несколько кешей.

Кроме тогосогласно литературе, представленной на вышеуказанном веб-сайте, память восстанавливается ядром со скоростью, зависящей от vfs_cache_pressure (/ proc / sys / vm / vfs_cache_pressure).

Спасибо всем за помощь.

...