1

Я запускаю эту команду для просмотра всех процессов, перечисленных по использованию оперативной памяти:

ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n

и самый большой из них - 178 МБ

Тем не менее, когда я запускаю glances я вижу 96% используемой оперативной памяти (всего 10 ГБ)

Когда я сортирую по MEM%, самый высокий из них - мой сервер узла на 1,8%

Мне кажется, что есть какой-то скрытый процесс, который занимает много оперативной памяти.

Я управляю виртуальной машиной.

OOM killer закрывал мои процессы, вот как я обнаружил проблему.

2 ответа2

0

Это сделано намеренно. Память - это ресурс "используй или потеряй". Вы не можете сохранить его на потом. Поэтому современные операционные системы стараются изо всех сил использовать как можно больше памяти.

Если вы думаете: «Я хочу, чтобы эта память была свободна сейчас, чтобы я мог использовать ее позже», подумайте немного сложнее. Вы можете использовать эту память сейчас и использовать ее позже. Здесь нет болезненного компромисса.

Скажем, например, вы запустили программу, и она закончилась. ОС может сохранить эту программу в памяти на случай, если вы запустите программу снова. Если это произойдет, никакого вреда не будет. Если программа не запустится снова, память можно просто удалить позже. Но если вы снова запустите эту программу, ввод-вывод будет сохранен, поскольку его не нужно считывать с диска. Поэтому ОС скорее оставит копии программ, которые недавно выполнялись в памяти, чем освободит эту память. Эта память, конечно, не связана ни с каким процессом.

0

Используйте free команду. Скорее всего, вы увидите не очень много сообщений о Free , но, скорее всего, довольно много сообщений о Available . man free скажет вам разницу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .