Dentro de las tareas de administración de servidores basados en ambientes Linux es una parte fundamental para el óptimo desarrollo la supervisión del uso de CPU tanto a nivel de procesos y servicios como a nivel de usuarios ya que el uso excesivo de procesador afectará el normal rendimiento del servidor al no desarrollar de manera natural y con los parámetros justos cada actividad.
Es normal que los equipos se “cuelguen” al estar saturados de procesos o acciones por parte de los usuarios pero en ocasiones queda difícil detectar exactamente dónde radica el problema.
CPUTool es una herramienta sencilla la cual nos permite verificar en tiempo real el uso de CPU y así poder limitar y controlar el uso por parte de aquellos procesos, servicios o usuarios que tienen altos niveles de uso permitiendo estabilizar el comportamiento del servidor.
Además con esta herramienta podremos detener un proceso si este sobrepasa los límites establecidos. Para este análisis usaremos Ubuntu 17.04 Server ya que CPUTools es compatible para entornos Debian y Ubuntu. CPUTool envía señales SIGSTOP y SIGCONT a cada proceso y esto determina la carga de cada proceso para su respectivo análisis.
Para instalar CPUTool en Ubuntu 17.04 Server ejecutaremos el siguiente comando:
sudo apt install cputool
Para comprobar cómo funciona esta herramienta ejecutaremos la siguiente línea la cual supone un alto consumo de CPU:
dd if=/dev/zero of=/dev/null &Podemos hacer uso del comando top para tener un reporte en tiempo real de los procesos activos de Ubuntu:
Podemos observar que el PID 2801 está consumiendo actualmente el 99.3 % de CPU lo cual es algo alto para un solo proceso y usuario y es allí donde CPUTools entra en acción. Podemos usar el parámetro --cpu-limit o -c para limitar un determinado proceso a un cierto porcentaje de uso de CPU, por ejemplo, si deseamos que este proceso use solo el 45% de la CPU ejecutaremos lo siguiente:
cputool --cpu-limit 45 -p 2801El parámetro -p indica el nombre del PID. Si ejecutamos de nuevo el comando top veremos el uso de CPU que ha disminuido:
Para detener el uso de top usaremos las teclas Ctrl + C. Si deseamos desplegar y controlar un grupo de procesos primero debemos conocer cuales PID lo componen, por ejemplo, si deseamos ver los procesos del servidor web usaremos la siguiente línea:
pidof apache2El resultado será el siguiente:
Allí podremos usar el parámetro -P para limitar el uso de dicho grupo de procesos:
cputool --cpu-limit 15 -P 1532Para ver todas las opciones que tenemos con CPUTool podremos usar el siguiente comando:
man cputool
Gracias a este comando controlaremos de una forma precisa cada proceso que afecta el rendimiento del CPU.