Consejos: Monitoreo de la carga de la CPU en GNU/Linux


¿El rendimiento de tu máquina Linux ha sido errático o inusualmente lento? ¿Sospechas que la creciente demanda podría estar superando tus recursos disponibles? Aquí hay algunas preguntas que deberías hacerte:

-¿Estás cerca de agotar tus recursos de CPU y memoria?
-¿Hay algo que se ejecute innecesariamente y que pueda cerrarse?
-¿Hay algo que haya estado corriendo sin tu conocimiento?

¿Dónde deberías buscar respuestas? El programa top es un gran lugar para comenzar. Puede proporcionarte una visión general completa y auto actualizada de los procesos que se ejecutan en tu sistema.
La figura a continuación muestra una pantalla típica de datos principales. La primera línea proporciona la hora actual, el tiempo transcurrido desde el inicio del sistema más reciente, la cantidad de usuarios actualmente conectados y los promedios de carga para el último minuto, cinco minutos y 15 minutos. Esta información también puede devolverse ejecutando el tiempo de actividad.

Dado que estamos tratando de resolver problemas de rendimiento, las columnas de datos que más nos deberían interesar son% CPU (porcentaje de capacidad de CPU utilizada actualmente por un proceso determinado) y% MEM (porcentaje de capacidad de memoria). Especialmente querrás observar los procesos que aparecen en la parte superior de la lista.

En este caso, puedes ver que el daemon de MySQL usa el 4.3% de la CPU del servidor y, de la siguiente columna, el 13% de su memoria. Si sigues esa fila hacia la izquierda, verás que el ID de proceso (PID) es 1367 y que el usuario de mysql es el propietario del proceso.

Quizás concluya que este proceso requirió más recursos de los que se pueden justificar y tendrás que sacrificarte (por el bien mayor, se comprende). Esa pantalla superior te dio todo lo que necesitarás para matarlo. Dado que MySQL es un servicio administrado por systemd (en esas distribuciones usando systemd), su primera opción debe ser usar systemctl para reducir el proceso suavemente sin poner en riesgo los datos de ninguna aplicación.

systemctl stop mysqld

Si el proceso que deseas cerrar no es administrado por systemd, o si algo salió mal y systemctl no pudo detenerlo, puedes usar kill para eliminar su proceso. Algunos sistemas requieren que instales killall como parte del paquete psmisc. Se mataría de esta manera:

kill 1367

Killall, por otro lado, usa el nombre del proceso en lugar de su ID.

killall mysqld

Kill o killall, esa es la pregunta. En realidad, la respuesta es obvia: kill cerrará un solo proceso, basado en el PID, mientras que killall matará tantas instancias de un programa en particular como se estén ejecutando. Entonces, si hubiera dos o tres instancias de MySQL separadas -quizás pertenecientes a usuarios separados-, todas se detendrían. Antes de ejecutar Killall, asegúrate de que no haya ningún proceso con un nombre similar que desees ejecutar, que podría convertirse en “daño colateral”.

Por supuesto, también deberás ejecutar systemctl disable para asegurarte de que el proceso no se reinicie la próxima vez que inicies.

systemctl disable mysqld

Descifrando TOP
En caso de que alguna vez los necesites, la tercera línea de salida superior que viste un poco antes nos da valores de tiempo (como porcentajes) para varias otras métricas de CPU. Aquí hay un resumen rápido de la mezcla de acrónimos que verás allí:

Iniciales Significado
us Tiempo que ejecuta procesos de alta prioridad (no identificados)
sy Tiempo ejecutando procesos de kernel
ni Tiempo ejecutando procesos de baja prioridad
id Tiempo dedicado al ralentí
wa Tiempo de espera para que se completen los eventos de E / S
hi Tiempo dedicado a administrar interrupciones de hardware
si Tiempo dedicado a la administración de interrupciones de software
st La pantalla superior se puede personalizar en tiempo real a través de la entrada del teclado.

 

Escribe h para obtener más información.

Este comando redireccionará un archivo desechable /dev/null y el carácter & empujará el proceso hacia el fondo, devolviéndole el control de la línea de comando. Para aumentar la presión, ejecuta el comando unas cuantas veces más.

$ yes> /dev/null &

Eso debería mantenerlos ocupados. Mientras todo está funcionando, mira arriba para ver qué está pasando. También podrías intentar ejecutar otras aplicaciones para ver cuánto demorará. Cuando haya terminado, ejecuta killall para eliminar todas las sesiones de una vez.

$ killall yes

 

David Clinton

(Visitada 1 veces, 1 visitas hoy )

Responder

avatar
  Subscribe  
Notify of
maslinux

Linuxero desde el pasado siglo XX :-)

Maslinux.es utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies