Tamaño del proceso en UNIX


¿Cuál es la forma correcta de obtener el tamaño del proceso en Solaris, HP-UX y AIX? Debemos usar top o ps -o vsz o algo más?

 24
Author: CloudyMarble, 2008-08-04

4 answers

Las definiciones exactas de vsize, rss, rprvt, rshrd, y otras abreviaturas de aspecto oscuro varían de sistema operativo a sistema operativo. Las páginas de manual de los comandos top y ps tendrán algún tipo de descripción, pero todas estas descripciones se simplifican enormemente (o se basan en implementaciones del núcleo extintas desde hace mucho tiempo).
"Tamaño del proceso" como concepto es diabólicamente difícil de precisar en el caso general. Las respuestas en casos específicos dependen en gran medida de la implementación real de gestión de memoria en el sistema operativo, y rara vez son tan satisfactorios como el ordenado concepto de "tamaño de proceso" que existe en la mente de la mayoría de los usuarios (y la mayoría de los desarrolladores).

Por ejemplo, ninguno de esos números (ni, probablemente, ninguna combinación de ellos) se puede usar para decirle exactamente cuántos procesos de este tipo se pueden ejecutar a la vez en una cantidad dada de memoria libre. Pero en realidad, su mejor apuesta es llegar a él desde ese extremo: ¿por qué desea este número, y para qué lo utilizará? Dada esa información, creo que será más útil respuesta.

 17
Author: John Siracusa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-09 15:19:06

En Solaris, puede obtener información detallada sobre el uso de memoria de un proceso con el comando pmap. En particular, pmap -x <pid> muestra cuánto de la memoria de un proceso se comparte y cuánto se usa específicamente por ese proceso. Esto es útil para calcular el uso de memoria" marginal " de un proceso with con esta técnica puede evitar el doble conteo de bibliotecas compartidas.

 5
Author: TLS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-15 07:58:50

Sí, tiene razón al bloquear el VSZ.

ps u le dará el VSZ y RSS, que son el tamaño de la memoria virtual y el tamaño del conjunto residente. El RSS es la cantidad de memoria física que se ha asignado al proceso, y el VSZ es el tamaño de la memoria virtual del proceso. Si tiene varias copias de un programa en ejecución, una gran parte de la memoria en el VSZ se compartirá entre esos procesos.

 4
Author: Mark Harrison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-15 07:59:03

Resumí el tamaño del conjunto residente para todos los procesos como este (como raíz):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
 2
Author: Jay Sheth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-20 14:59:09