1.10. Gestión básica de procesos
1.10.3. Listando y cambiando procesos con top
El comando top
proporciona una forma orientada a la pantalla de mostrar los procesos que se están ejecutando en su sistema. Con top
, por defecto, se muestran los procesos en función del tiempo de CPU que están consumiendo actualmente. Sin embargo, también se pueden ordenar por otras columnas. Por otra parte, si se identifica un proceso problemático, también puede usar top
para matar (terminar completamente, en inglés kill) o renice
(en castellano, re-priorizar) ese proceso. Si desea poder matar o renice
procesos, debe ejecutar top
como usuario root. Si solo desea mostrar procesos, y posiblemente matar o cambiar sus propios procesos, puede hacerlo como usuario regular.
La figura 4 muestra un ejemplo de la ventana top
. La información general sobre su sistema aparece en la parte superior de la salida de top
, seguida de información sobre cada proceso en ejecución. En la parte superior, puede ver cuánto tiempo ha estado activo el sistema, cuántos usuarios están actualmente conectados al sistema y cuánta demanda ha habido en el sistema en los últimos 1, 5 y 10 minutos. Otra información general incluye cuántos procesos (tareas) se están ejecutando actualmente, cuánta CPU se está utilizando y cuánta memoria RAM y swap están disponibles y se están utilizando. Después de la información general, hay listados de cada proceso, ordenados por el porcentaje de la CPU que está siendo utilizado por cada proceso. Toda esta información se vuelve a mostrar cada 5 segundos, este tiempo está definido de forma predeterminada.
La siguiente lista incluye acciones que se pueden realizar cuando se está ejecutando top
para mostrar información de diferentes formas y modificar procesos en ejecución:
- Presionad h para ver las opciones de ayuda, y luego presione cualquier tecla para volver a la pantalla
top
. - Presionad M para ordenar por uso de memoria en lugar de CPU, y luego presione P para volver a ordenar por CPU.
- Presionad el número 1 para alternar entre mostrar el uso de la CPU de todas las CPU, si tiene más de una CPU en su sistema.
- Presionad R para ordenar su salida en orden inverso.
- Presionad u e ingrese un nombre de usuario para mostrar solo los procesos de un usuario en particular.
Una práctica común es usar top
para encontrar procesos que estén consumiendo demasiada memoria o potencia de procesamiento y luego actuar sobre esos procesos de alguna manera. Un proceso que consume demasiada memoria puede ser matado, o un proceso que consume demasiada CPU puede ser renice
para darle menos prioridad a los procesadores.
- Matar un proceso: tomad nota del ID de proceso del proceso que deseáis matar y presionad k. Escribid 15 para terminar limpiamente o 9 para matar el proceso directamente. Desde el terminal también se puede matar procesos.
$ kill 2277
$ kill -15 2277
$ kill -SIGKILL 2277
Cuando el kernel de Gnu/Linux intenta decidir qué procesos en ejecución tienen acceso a las CPU de su sistema, una de las cosas que tiene en cuenta es el valor nice establecido en el proceso. Cada proceso en ejecución en el sistema tiene un valor nice entre -20 y 19. De manera predeterminada, el valor nice se establece en 0. Aquí hay algunos datos sobre los valores nice:
- Cuanto más bajo sea el valor nice, más acceso a las CPU tendrá el proceso.
- El usuario root puede establecer el valor nice en cualquier proceso en cualquier valor válido, hacia arriba o hacia abajo.
- Un usuario estándar solo puede establecer el valor nice en los propios procesos del usuario, solo pueden ser positivos y el nuevo valor de nice siempre ha de ser mayor, no menor, al predeterminado.
Si volvemos a ejecutar el comando top
,
Renice
un proceso: tomad nota del ID de proceso del proceso que deseáisrenice
y presionad r. Cuando aparezca el mensaje «PID to renice:», escribid el ID del proceso que desea renicear. Cuando se solicite «Renice PID to value:», escribid un número del 0 al 20. Desde el terminal se pueden nice/renice diferentes procesos (en este caso lo realiza root).
# $ nice +5 GekoMain &
# $ renice -n -5 2243