Назад | Перейти на главную страницу

Точно узнать об использовании памяти в Linux

Я пытаюсь включить эту функцию в сценарий, который пишу. Насколько я понимаю, "free -m" не сообщает точно. Насколько я понимаю, память используется, Linux не «освобождает» ее до тех пор, пока это действительно не понадобится. Например, если у меня 32 ГБ оперативной памяти, и я сделал

 malloc(1024*1024*1024*31)

Казалось бы, что вся память была использована (даже после завершения процесса), пока я не отскочил от коробки. Есть ли простой способ получить точный подсчет памяти? Например, если все 100 процессов и ядро, вместе взятые, используют 14 ГБ оперативной памяти, я хочу сообщить о 14 ГБ независимо от того, что говорит free -m.

Мне потребовалось немного времени, чтобы понять. Когда вы запускаете «free -m», вам нужно смотреть на строку «- / + buffers / cache» под столбцом free. Это показывает доступную память для использования. Память, которая была использована и возвращена системе, просто обозначается по-другому. Что касается системы, она не бесплатна, но она также не используется и не доступна для программ.