Examinar la información sobre procesos
El kernel proporciona información útil sobre procesos y entornos. Para ver esta información, puede utilizar los siguientes mandatos.
La línea de mandato de ps
En Linux®, las hebras de Java™ se implementan como hebras del sistema y pueden ser visibles en la tabla de procesos, en función de la distribución de Linux .
La ejecución del mandato ps ofrece una instantánea de los procesos actuales. El mandato ps obtiene su información del sistema de archivos /proc. A continuación se muestra un ejemplo de utilización de ps:
ps -efwH
UID PID PPID C STIME TTY TIME CMD
cass 1234 1231 0 Aug07 ? 00:00:00 /bin/bash
cass 1555 1234 0 Aug07 ? 00:00:02 java app
cass 1556 1555 0 Aug07 ? 00:00:00 java app
cass 1557 1556 0 Aug07 ? 00:00:00 java app
cass 1558 1556 0 Aug07 ? 00:00:00 java app
cass 1559 1556 0 Aug07 ? 00:00:00 java app
cass 1560 1556 0 Aug07 ? 00:00:00 java app - e
- Especifica seleccionar todos los procesos.
- f
- Asegura que se proporciona un listado completo.
- l
- Se visualiza en formato largo.
- m
- Muestra hebras si no se muestran de forma predeterminada.
- w
- Un modificador de salida que asegura un salida amplia.
- H
- Útil cuando está interesado en hebras Java porque muestra un listado jerárquico. Con una visualización jerárquica, puede determinar qué proceso es la hebra primordial, cuál es el gestor de hebras y cuáles son las hebras hijo. En el ejemplo anterior, el proceso 1555 es la hebra primordial, mientras que el proceso 1556 es el gestor de hebras. Todos los procesos hijo tienen un ID de proceso padre que apunta al gestor de hebras.
La línea de mandato de top
El mandato top muestra los procesos que consumen más CPU o más memoria en tiempo real. Proporciona una interfaz interactiva para la manipulación de procesos y permite ordenarlos según diferentes criterios, como por ejemplo uso de la CPU o uso de la memoria. Pulse h mientras ejecuta top para ver todos los mandatos interactivos disponibles.
El mandato top muestra varios campos de información para cada proceso. El campo de proceso muestra el número total de procesos que se están ejecutando, pero descompone la información en tareas que están ejecutándose, en suspensión, detenidas o activas. Además de visualizar el PID, el PPID y el UID, el mandato top muestra información sobre el uso de la memoria y el espacio de intercambio. Los 2memmuestra estadísticas sobre el uso de memoria, incluida la memoria disponible, la memoria libre, la memoria utilizada, la memoria compartida y la memoria utilizada para almacenamientos intermedios. El campo de intercambio muestra el espacio de intercambio total, el espacio de intercambio disponible y el espacio de intercambio utilizado.
La línea de mandato de vmstat
El mandato vmstat informa de las estadísticas de almacenamiento virtual. Resulta útil para tener una visión general de la salud del sistema ya que informa del sistema en su conjunto. Los mandatos como top pueden utilizarse para obtener información más específica sobre el funcionamiento del proceso.
Cuando se utiliza por primera vez durante una sesión, la información se notifica en forma de promedios desde el último rearranque. El uso subsiguiente genera informes que se basan en un periodo de muestreo que puede especificar como una opción. vmstat 3 4 muestra valores cada 3 segundos para un recuento de cuatro veces. Podría ser útil para iniciar vmstat antes de la aplicación, hacer que dirija su salida a un archivo y más tarde estudiar las estadísticas cuando la aplicación se inició y se ejecutó.
La salida básica de este mandato se visualiza en los siguientes apartados:
- procesos
- Muestra el número de procesos que están esperando el tiempo de ejecución, que están bloqueados o que están intercambiados.
- memoria
- Muestra la cantidad de memoria (en kilobytes) intercambiada, libre, almacenada en búfer y almacenada en memoria caché. Si la memoria libre disminuye durante determinadas fases de la ejecución de la aplicación, es posible que exista una fuga de memoria.
- intercambiar
- Muestra los kilobytes por segundo de memoria intercambiada desde el disco e intercambiada hacia el disco. La memoria se intercambia hacia el disco si no hay suficiente RAM para almacenarla toda. Aquí, los valores grandes pueden ser una indicación de que no hay suficiente RAM disponible (aunque es normal que se produzca un intercambio cuando la aplicación se inicia por primera vez).
- io
- Muestra el número de bloques por segundo de memoria enviada a los dispositivos de bloques o recibidos de ellos.
- sistema
- Muestra las interrupciones y los conmutadores de contexto por segundo. Existe una penalización de rendimiento asociada a cada conmutador de contexto, de modo que un valor alto para este apartado podría significar que el programa no realiza bien el escalado.
- cpu
- Muestra un desglose del tiempo de procesador entre tiempo de usuario, tiempo del sistema y tiempo de inactividad. La cifra de tiempo de inactividad muestra lo ocupado que está un procesador, donde un valor bajo indica que el procesador está ocupado. Esta información le ayudará a entender qué áreas del programa están utilizando más la CPU.