Я пытаюсь включить эту функцию в сценарий, который пишу. Насколько я понимаю, "free -m" не сообщает точно. Насколько я понимаю, память используется, Linux не «освобождает» ее до тех пор, пока это действительно не понадобится. Например, если у меня 32 ГБ оперативной памяти, и я сделал
malloc(1024*1024*1024*31)
Казалось бы, что вся память была использована (даже после завершения процесса), пока я не отскочил от коробки. Есть ли простой способ получить точный подсчет памяти? Например, если все 100 процессов и ядро, вместе взятые, используют 14 ГБ оперативной памяти, я хочу сообщить о 14 ГБ независимо от того, что говорит free -m.
Мне потребовалось немного времени, чтобы понять. Когда вы запускаете «free -m», вам нужно смотреть на строку «- / + buffers / cache» под столбцом free. Это показывает доступную память для использования. Память, которая была использована и возвращена системе, просто обозначается по-другому. Что касается системы, она не бесплатна, но она также не используется и не доступна для программ.