Limitar el uso de la cpu con cpulimit

Limitar el uso de la cpu con cpulimit.

Un sistema Linux trabajando en un entorno empresarial ejecuta una gran cantidad de procesos, tanto del propio sistema operativo, como de las aplicaciones.

Estos procesos hacen uso de los recursos del hardware subyacente, siempre en función de la carga actual del sistema y las prioridades del proceso. Aun así, puede haber procesos que confluyan en el tiempo y que consuman una cantidad excesiva de recursos, lo que provoca un efecto negativo en el sistema afectando al rendimiento del sistema de manera perjudicial.

Cuando sucede lo comentado (cuello de botella), otros procesos con igual o menor prioridad tendrán que esperar a que los actuales se completen antes de tener acceso, y se les permita realizar las operaciones requeridas. Si el cuello de botella ya se ha producido, puede demorar bastante.

Para solucionar este problema podemos utilizar la herramienta CPUlimit.

El objetivo principal de la herramienta CPULimit, es evitar que un proceso se ejecute durante más tiempo del que hayamos especificado. Una vez corriendo la aplicación sobre un proceso, no modifica la prioridad del mismo, lo que calcula es el uso real del proceso sobre la CPU, ademas es capaz de adaptarse a la carga general del sistema, de forma dinámica y rápida.

En este artículo vemos cómo instalar y usar esta utilidad en nuestro sistema Linux.

Gestor de tareas del sistema CPULimit

Gestor de tareas del sistema CPULimit

 

Limitar el uso de la cpu con cpulimit

CPULimit no siempre viene instalado por defecto, así que procedemos (en el ejemplo sobre Debian, CentOS y derivados).

Debian, Ubuntu, Linux Mint y derivados:

CentOS y derivados:

Para poder instalar «cpulimit» necesitas el repositorio «epel«, si no recuerdas como, revisa este anterior articulo. Una vez instalado ejecuta lo siguiente…

Una vez instalada la aplicación vemos algunos ejemplos de uso, en el primero vamos a limitar el proceso «apache» a un 35%. Ejecuta lo siguiente:

Ahora en vez de limitar un proceso definido buscamos los que más consumen. Puedes utilizar el comando ps o la herramienta «top / htop«, tu eliges.

Comando ps:

Top / Htop:

Limitar procesos con CPULimit

Limitar procesos con CPULimit

En la imagen de ejemplo anterior (htop), vemos que el proceso php-fpm tiene un consumo elevado, aun no es peligroso como para llegar a saturar, pero por si acaso lo limitaremos al 25%. En este caso utilizamos el numero de proceso (PID).

Otro caso sería en un servidor de aplicaciones, sitios webs, y varios, entonces seguro que existen varios procesos del mismo servicio.

Siguiendo el ejemplo con «php-fpm«, podemos identificar todos los procesos en ejecución del servicio de la forma siguiente.

Para más opciones puedes revisar el manual de la herramienta:

 

Manual de CPULimit

NAME
                  cpulimit — limits the CPU usage of a process

SYNOPSIS
                  cpulimit TARGET [OPTIONS…]

DESCRIPTION
                  TARGET must be exactly one of these:

                  -p, –pid=N
                  pid of the process

                  -e, –exe=FILE
                  name of the executable program file

                  -P, –path=PATH
                  absolute path name of the executable program file

OPTIONS

                  -l, –limit=N
                  percentage of CPU allowed from 0 to 100 (mandatory)

                  -v, –verbose
                  show control statistics

                  -z, –lazy
                  exit if there is no suitable target process, or if it dies

                  -h, –help
                  display this help and exit

 

Espero que este articulo sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Valora el articulo!!!
[Total: 1 Media: 5]

Agregar comentario