“Conocimiento Sistemas>unix

¿Cuál es el comando o cómo saber la cantidad de verificación de la memoria del montón asignada y apilar para el proceso en 4 GB de RAM en UNIX?

2013/5/10
No hay un comando único y universalmente perfecto para obtener directamente el montón * exacto * del tamaño de la pila para un proceso en sistemas similares a Unix. La información no siempre se rastrea constantemente de una manera fácilmente accesible por el sistema operativo. Sin embargo, puede obtener aproximaciones e información relacionada utilizando varias herramientas.

Aquí hay un desglose de cómo abordar esto, junto con explicaciones y limitaciones:

1. `/proc/[pid]/status` (punto de partida más útil):

Este archivo (en Linux y sistemas similares) proporciona información de estado del proceso. Los campos clave son:

* VMRSS: Tamaño del conjunto de residentes:esto muestra la cantidad de RAM que el proceso ha * actualmente * asignado y está utilizando activamente. Es un buen indicador de la presión de memoria, pero no separa directamente el montón y la pila.

* vmsize: Tamaño de memoria virtual:la memoria virtual total utilizada por el proceso (incluidas las bibliotecas compartidas, el código, el montón, la pila, etc.). Nuevamente, no una medida directa de montón/pila.

* vmdata: Tamaño de segmentos de datos (que incluye el montón)

* vmstk: Tamaño del segmento de la pila

Puedes usar esto así:

`` `Bash

CAT/PROC/[PID]/STATO | Grep -i 'vmrss \ | vmsize \ | vmdata \ | vmstk'

`` `` ``

Reemplace `[PID]` con el ID de proceso del proceso que desea examinar.

Limitaciones: `Vmdata` incluye más que solo un montón, y` vmstk` solo muestra el tamaño de la pila * comprometido *, no necesariamente el máximo permitido.

2. `PMAP [PID]` (Linux):

`PMAP` muestra el mapa de memoria de un proceso. Esto proporciona una vista más detallada, pero aún así no etiqueta explícitamente el montón y la acumulación por separado. Deberá interpretar el resultado buscando regiones etiquetadas `[Heap]` y `[Stack]`. Los tamaños que se muestran están en memoria virtual.

`` `Bash

PMAP [PID]

`` `` ``

Limitaciones: La salida puede ser bastante detallada, e identificar el montón y la pila definitivamente requiere comprender el formato del mapa de memoria.

3. `top` o` htop` (monitoreo interactivo):

Estos comandos muestran información del proceso en tiempo real, incluido el uso de la memoria (generalmente como tamaño del conjunto de residentes, RSS). Si bien no proporcionan números de montón/pila separados, le brindan una vista dinámica de la huella de memoria del proceso.

4. Usando un depurador (GDB):

Si tiene el código fuente, un depurador como `GDB` puede proporcionar información mucho más precisa. Puede adjuntar a un proceso en ejecución e inspeccionar el uso de montón y apila utilizando comandos GDB. Esta es una técnica más avanzada y requiere conocimiento de programación.

Consideraciones importantes:

* Límite de RAM 4GB: La cantidad total de RAM (4GB en su caso) limita la memoria * total * que puede usar un proceso, pero no define directamente los tamaños de montón o pila. El sistema operativo gestiona la asignación de memoria dinámicamente, y un proceso podría solicitar más de lo que realmente usa en cualquier momento dado.

* Memoria virtual versus física: Los números que obtienes (excepto quizás `vmrss`) a menudo se encuentran en el espacio de memoria virtual. La RAM física real utilizada podría ser menor (debido al intercambio y las bibliotecas compartidas).

* Herramientas específicas del sistema: Los comandos específicos y su salida pueden variar ligeramente en diferentes sistemas similares a Unix (Linux, BSD, MacOS).

En resumen, no hay un solo comando para obtener un montón preciso y tamaños de pila. El mejor enfoque combina `/proc/[pid]/status` (para una descripción general rápida) y potencialmente` PMAP` (para más detalles). Usar un depurador es el más preciso pero requiere más experiencia. Recuerde que los números que obtienen representan el uso actual, que puede fluctuar constantemente.

unix
¿Qué comando Linux puede usar para mostrar un archivo en orden alfabético?
¿En Unix donde suele dirigirse la salida estándar?
¿Qué es el esquema UPG en Linux?
Cómo ajustar la configuración de Apache y PHP para la velocidad en Unix
¿Qué significa el sistema de pestañas?
Tutorial de Unix ZFS
¿Cuál es el propósito de un archivo PSD?
Cómo ver los procesos en UNIX
Conocimiento de la computadora © http://www.ordenador.online