Ответов (4)4
Точные определения vsize
, rss
, rprvt
, rshrd
, и другие малоизвестные выглядящие аббревиатуры варьируются от ОСА OS. Страницы руководства для top
и ps
команд будет иметь какое - то описание, но все такие описания значительно упрощается (или основаны на давно вымерших реализации ядра).
«Размер процесса» как понятие в общем случае чертовски сложно определить. Ответы в конкретных случаях сильно зависят от фактической реализации управления памятью в ОС и редко бывают столь же удовлетворительными, как концепция аккуратного «размера процесса», которая существует в умах большинства пользователей (и большинства разработчиков).
Например, ни одно из этих чисел (или, вероятно, их комбинация) не может использоваться, чтобы точно сказать, сколько таких процессов может выполняться одновременно в данном объеме свободной памяти. Но на самом деле лучше всего исходить из этого: зачем вам этот номер и для чего вы его используете? Учитывая эту информацию, я думаю, вы получите более полезные ответы.
Да, вы правы, заблокировав ВСЗ.
ps u
предоставит вам VSZ и RSS, которые представляют собой размер виртуальной памяти и размер резидентного набора. RSS - это объем физической памяти, выделенной процессу, а VSZ - это размер виртуальной памяти процесса. Если у вас работает несколько копий программы, большая часть памяти в VSZ будет разделена между этими процессами.
В Solaris вы можете получить подробную информацию об использовании памяти процессом с помощью pmap
команды. В частности, pmap -x <pid>
показывает, какая часть памяти процесса совместно используется и сколько конкретно используется этим процессом. Это полезно для определения «предельного» использования памяти процессом - с помощью этого метода вы можете избежать двойного подсчета общих библиотек.