Система памяти Linux заполнена многими подпрограммами утилит оптимизации памяти и совместного использования памяти, что делает саму идею о том, как память распределяется и используется между ними, громоздким подходом. Вывод ps и других связанных с ps команд все обрабатывают их вывод из данных под /proc
файловой системой. в частностиps
RSS, (резидентный размер памяти) и VSIZE (размер виртуальной памяти) оба важны, однако VSIZE не показывает точное использование памяти, и разница между VSIZE и rss является тем, что фактически предназначено и выделено программе во время инициализации, но может быть еще не ссылка. Например, программа может иметь множество связанных библиотек, но они еще не загружены, потому что на них еще нет ссылок в реальном времени выполнения программы. RSS дает общий объем памяти, фактически используемый программой, но может не дать истинную картину потребления памяти, поскольку большая часть выделенной памяти может использоваться совместно с другими экземплярами того же процесса или других процессов. Взгляд вниз /proc/<processid>/maps
может дать приблизительное представление о том, как использовалась память, но иногда они могут вводить в заблуждение. использованиеpmap -x <pid>
из командной строки, полезно увидеть распространение.
Часто лучшие утилиты free
и vmstat
. free
предоставит вам общую информацию о текущем потреблении памяти, а vmstat поможет вам узнать, как часто оно обновляется.