Я использую SUSE, у меня 31 ГБ памяти. Mem: всего 31908592k, использовано 31429632k, 478960k свободно, 12176k буферов. Как узнать, какой процесс поглощает всю мою память.
3 ответа
Запустите top
, затем нажмите Shift O , затем N , затем, наконец, Enter. Нажмите Q, когда вы хотите выйти.
И не забывайте:«Linux съел мою оперативную память!"
Похоже, ты бежишь free
, смотришь на первую строчку и волнуешься. Это нормально; многие люди делают это.
Игнорировать первую строку вывода из free
. В самом деле. Linux очень агрессивно относится к кешированию данных с диска, даже включая "выгруженные" страницы виртуальной памяти, в ОЗУ, и все эти кэшированные данные считаются "использованными" в первой строке free
, даже если их можно снова сделать доступными в микросекунда (или меньше, в эти дни), если это необходимо.
Вы должны смотреть на вторую строку вывода из free
, помеченную как -/+ buffers/cache:
Это строка, которая скажет вам, сколько памяти фактически связано с запуском программ, игнорируя то, что в данный момент используется буферами и кешем.
Например, моя машина в настоящее время показывает:
total used free shared buffers cached
Mem: 3083924 2177300 906624 0 461344 837008
-/+ buffers/cache: 878948 2204976
Swap: 4000148 0 4000148
Хотя в настоящее время только 906624 байта ОЗУ полностью не используются, есть еще 461344 байта буферов и 837008 байтов кэшированных данных, которые можно сделать более или менее доступными мгновенно, если что-то более важное (т. Е. Почти все ) нуждается в памяти, давая мне в общей сложности 2204976 байт, фактически доступных для меня.
Используйте top
команду. Он показывает список всех запущенных процессов, отсортированный по тем, которые используют больше всего процессоров по умолчанию. Если вы нажмете Shift M, он изменит сортировку по использованию памяти. Вы увидите главных нарушителей памяти в верхней части списка.