Как правильно интерпретировать топ Linux? - PullRequest
2 голосов
/ 10 августа 2010

Мы работаем, чтобы профилировать Java-программу по использованию памяти.У нас есть 512 ОЗУ, и на верхнем изображении показано, что около 500 МБ ОЗУ используется с очень небольшим количеством свободного.Однако в столбце RES мы видим, что jvm использует только 100 МБ или около того.А все остальные процессы даже не значительны (менее 1к).Так что именно потребляет всю память или мы просто неправильно читаем верхнюю часть?

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

Эти 500 МБ включают в себя память, используемую кешем страниц - кэшированные части файлов на диске. Эта память пригодна для использования процессами, поэтому, если вы добавите память, указанную как «свободную», к памяти, указанной как «кэшированная», то у вас будет память, которая все еще доступна для использования задачами.

В качестве альтернативы вы можете использовать команду free, которая отображает эту цифру в столбце "free" в строке -/+ buffers/cache:.

0 голосов
/ 10 августа 2010

Кроме того, память, используемая несколькими приложениями (например, динамическими библиотеками), считается каждый раз, когда на нее ссылаются, даже если она занимает одну копию.Попробуйте использовать htop тоже.

0 голосов
/ 10 августа 2010

Это зарезервированная память.Процесс не использует его, он зарезервирован для него.Если другой процесс захочет выделить больше памяти, он получит разрешение.

...