Как сказать, куда ушла память в Linux - PullRequest
2 голосов
/ 03 ноября 2010

У меня длительный процесс, который, как я подозреваю, имеет утечку памяти.Я использую top для контроля уровней памяти каждого процесса, и ничто не использует более 15% от общего объема ОЗУ.Машина имеет 4 ГБ оперативной памяти, и процесс начинается с более чем 3 ГБ свободного места.Сам процесс делает очень тяжелые, пользовательские вычисления на нескольких МБ данных.Это занимает одно ядро ​​на 100%.

Со временем память исчезает, но top не винит мой длительный процесс.Вместо этого увеличивается объем кэш-памяти и буферов, а объем свободной памяти уменьшается до 2 МБ.Процесс в конце концов завершает свою работу и завершается без проблем, но память никогда не возвращается.Должен ли я быть обеспокоен или это "нормально"?Есть ли другие инструменты, кроме top, которые могут дать более глубокое понимание?

Спасибо.

1 Ответ

5 голосов
/ 03 ноября 2010

Это нормально.Ваш процесс работает с файлами, которые кэшируются в памяти.Если есть «давление памяти» (требование от других программ), то эта кеш-память будет освобождена.В первый раз, когда я написал виджет X, чтобы показать, сколько памяти было «свободно», мне потребовалось некоторое время, чтобы привыкнуть к мысли, что свободная память бесполезна: лучше всего использовать все это, делая some вид кэширования, пока он не понадобится в другом месте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...