Tecnología

Inicio

¿Cuánto Linux de memoria que utilizan un proceso?

¿Cuánto Linux de memoria que utilizan un proceso?


La determinación de la cantidad de memoria utilizada por un proceso en ejecución en una plataforma Linux es un asunto complicado. Los valores para el uso de memoria reportados por el sistema operativo son imprecisas. Al utilizar las utilidades integradas proporcionadas con Linux, es importante entender las estadísticas de uso de memoria y cómo se calcula.

¿Cómo funciona un proceso de uso de la memoria?

Cuando se inicia un proceso, el sistema operativo asigna la cantidad de memoria que el proceso requiere para funcionar. Cada proceso tiene cuatro segmentos de memoria para el código ejecutable y datos. El segmento de "código" contiene las instrucciones ejecutables. El segmento de "datos" contiene las variables estáticas y globales. La "pila" contiene las variables locales. El "montón" contiene objetos asignados dinámicamente. Los procesos pueden utilizar las bibliotecas compartidas. Las bibliotecas compartidas sólo se cargan en la memoria una vez, y todos los procesos que utilizan una biblioteca compartida particular, utilizarán esa copia.

¿Qué estadísticas de memoria informe no Linux?

La memoria virtual es la cantidad total de espacio de direcciones reservado por el sistema operativo para el proceso de su código, datos y pila. El tamaño de la memoria virtual de lo informado por Linux incluye todo el espacio de código, datos y pila reservado para su uso por un proceso, tanto en la memoria física y swap. Este valor incluye el espacio utilizado por todas las bibliotecas compartidas utilizadas por el proceso. La implicación de esto es que las bibliotecas compartidas cuentan en su totalidad hacia el tamaño de un proceso dado.

El tamaño de la memoria residente de un proceso informado por Linux incluye solamente la cantidad de memoria física del proceso y cuando las bibliotecas compartidas referencias están utilizando en un momento dado. Los segmentos se trasladaron a cambiar el espacio no están incluidos. Al igual que con el tamaño de la memoria virtual, el tamaño de la memoria residente incluye el espacio utilizado por las bibliotecas compartidas.

Cómo ver una instantánea de proceso simple con ps

La utilidad ps proporciona una instantánea de los procesos que se ejecutan en el sistema, reportando los porcentajes del tamaño de la memoria virtual y residente, CPU y memoria, y una amplia variedad de otros datos. Para examinar un solo proceso, utilizar las siguientes opciones para ps, incluyendo vsz para el tamaño de la memoria virtual, y RSS para el tamaño de la memoria residente. Por ejemplo,

ps p 3746 o pid, RSS, vsz, comm

salidas para proceso 3746:

COMANDO PID RSS VSZ
3746 14444 351216 httpd2

Seguimiento de los procesos con la parte superior

¿Cuánto Linux de memoria que utilizan un proceso?


La utilidad superior proporciona una imagen en directo del rendimiento del sistema. Para supervisar uno o más procesos específicos con la parte superior, utilice la opción -P para proporcionar una lista de identificadores de proceso. Por ejemplo:

-p superior 3746,6100,28753,23176,25544

Tras el lanzamiento de la parte superior, pulse la tecla de comando "f" para acceder a la pantalla de selección de columnas. Active la visualización de los PID, VIRT, RES, SHR, columnas SWAP, código, datos y comandos. Como se ilustra en la captura de pantalla, la pantalla muestra las siguientes estadísticas de la memoria:

VIRT: tamaño de la memoria virtual
RES: tamaño de la memoria residente
SHR: tamaño de la memoria compartida
SWAP: tamaño intercambiadas
El tamaño del código en la memoria física: CÓDIGO
DATOS: Los datos más pila tamaño de la memoria física

El mirar a escondidas en / proc

estado detallado e información de uso de memoria de proceso se pueden encontrar en / proc / <pid> / estado y / proc / <pid> / smaps. Una variedad de información está contenida en / proc / <pid> / estado, incluyendo las estadísticas de la memoria:

VmPeak: Pico tamaño de la memoria virtual
VmSize: La memoria virtual
VmData: tamaño de segmento de datos
VmStk: Tamaño de la pila
VmExe: Ejecutable tamaño del segmento
VmLib: el tamaño del código Biblioteca

/ Proc / <pid> / smaps proporciona una visión muy detallada de un proceso 'usos de memoria, desglosado por mapeo de código, pila, montón y cada biblioteca compartida. La salida completa de smaps es bastante largo y difícil de digerir. Se puede utilizar el Linux: Módulo smaps Perl para analizar y procesar el archivo smaps.