Cómo limitar del uso de CPU de un proceso mediante cpulimit

Hola a todosubuntudebian

En este tutorial vamos a aprender como limitar el uso de CPU de un proceso con la herramienta cpulimit en Debian/Ubuntu. cpulimit es un programa muy simple que logra limitar el consumo de CPU de un proceso (expresado en porcentaje, no en tiempo de CPU). Esta herramienta puede ser muy útil para controlar procesos batch, cuando no nos interese que dichos procesos se coman gran parte de la CPU. La herramienta no actúa sobre el valor de nice ni tampoco sobre valores de prioridad de planificación, solo en el uso real de CPU del proceso. También, es capaz de adaptarse por si mismo a la carga global del sistema, de forma dinámica y rápida.

  1. Nota preliminar
  2. Correremos todos los comandos como root, por lo tanto hagamos loggin como root de forma directa (Debian) o usemos sudo (Ubuntu):

    sudo su

    Si tu máquina tiene 1 solo procesador puedes limitar el porcentaje de 0% a 100%, lo que significa que si por ejemplo seleccionamos un 50%, tu proceso no puede usar mas de 500 ms de tiempo de cpu en casa segundo. En cambio si tu máquina tiene 4 procesadores, el porcentaje variará de 0% a 400%, por lo tanto estableciendo el limite en 200% significará que no se use mas de la mitad de la potencia existente. En cualquier caso, el porcentaje es exactamente el mismo valor que puedes ver cuando corres top.

    cpulimit debe correr como mínimo con el mismo usuario que corre el proceso. Es bastante mas operativo que cpulimit corra con root, con el objetivo de que tenga mayor prioridad y mejor contros sobre el proceso.

  3. Instalando cpulimit
  4. cpulimit se encuentra disponible como un paquete para Debian y Ubuntu, por lo tanto puede ser instalado así:

    aptitude install cpulimit

  5. Usando cpulimit
  6. Echemos un vistazo a la página man de cpulimit para aprender a usarlo:

    man 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

    EXAMPLES
    Assuming  you  have  started ”foo –bar” and
    you find out with top(1) or ps(1) that this process uses all your CPU time you can either

    # cpulimit -e foo -l 50
    limits the CPU usage of the process by acting on the 
    executable program file (note: the argument ”–bar” is omitted)

    # cpulimit -p 1234 -l 50
    limits the CPU usage of the process by acting on its PID, as shown by ps(1)

    # cpulimit -P /usr/bin/foo -l 50
    same as -e but uses the absolute path name

    AUTHOR
    This  manpage was written for the Debian project 
    by gregor herrmann <gregor+debian@comodo.priv.at> but may be used by others.

    Ahora supongamos que queremos limitar el proceso apache2 al 30%, tendríamos que hacer lo siguiente:

    cpulimit -e apache2 -l 30

    La opción -e toma el nombre del programa ejecutable. Puedes conseguir el nombre de la salida del comando top.

    En vez de usar el nombre del fichero ejecutable, podemos usar el ID de proceso con la opcion -p. Puedes obtener el ID de proceso de apache2 así:

    ps aux

    o

    ps aux | grep apache2

    Asumamos que el ID de proceso de apache2 es el 4510, para limitar la CPU a 30% debieramos hacer:

    cpulimit -p 4510 -l 30

    Tambien podriamos pasar a cpulimit el camino absoluto del ejecutable que queremos controlar con el parámetro -P. El nombre del ejecutable absoluto para apache2 es /usr/bin/apache2, por lo tanto podríamos usar el siguiente comando:

    cpulimit -P /usr/sbin/apache2 -l 30

    Nota: cpulimit correrá en primer plano hasta que pulsemos Ctrl+C, momento en el cual dejará de controlar el proceso.

  7. Enlaces de interés
  8. http://cpulimit.sourceforge.net/

Pues hasta aquí por hoy. Saludos a todos.

Maltrato informático

¿A alguno le suena de algo?

A mi mas de lo que debiera. Saludos.

Sobre la devaluación de la profesión Informática

No se si estaréis entre los afortunados que hemos podido ver el último de los anuncios de telefónica.

En esta joya de anuncio, se hace referencia,entre otras cosas, a la disponibilidad de un informático, en la solución integral, y lo gracioso es que el buen señor lo usa para retocar fotografías digitales y para colmo lo dice con orgullo, repito, retocar fotos!!!!, vamos no me jodas!!!!

Bien, personalmente en mi carrera, no recuerdo que tuviésemos una asignatura de retoque fotográfico. De echo no recuerdo ninguna de las asignaturas en mis 5 años (y alguno mas) de carrera en la que nos evaluasen nuestra capacidad para el retoque fotográfico, de hecho creo que ni siquiera fue nombrada esta materia en todo ese tiempo. De este comentario seguro que los lectores del presente se pueden hacer una idea de la importancia que tiene la fotografía en la carrera de informática. Ojo, que no digo que no tenga su importancia, sino que englobado dentro de la carrera de informática la importancia de este tema tiende a 0.

Tanto los profesionales de la informática como los que no lo son creo que conocen la importancia adquirida por la informática en el mundo actual. No creo que nadie en su sano juicio, imagine a la sociedad actual, sin el apoyo de una ciencia como esta.

En este tipo de anuncios nos podemos hacer una idea de cual es la visión que tiene, no solo el público general sobre la informática, que la verdad es que personalmente me importa poco, sino lo que es peor aún, la propia empresa. Lo que me resulta mas curioso, es que el anuncio del que estoy hablando no es de la empresa Pelanas S.A, sino TELEFÓNICA, empresa en la cual trabajan muchos profesionales, me costa.

Echando un vistazo en la web de telefónica, solo por curiosidad, en 2007* eran unos 53300 profesionales, de los cuales el 45% están dedicados a labores de producción. Como el concepto “labores de producción es muy amplio”, voy a suponer que el 50% de ellos son profesionales de la informática. La cifra de profesionales en esta empresa en España es cercana a 12000 personas. Me parece lamentable que una empresa, eminentemente tecnológica, y con estas cifras de empleados técnicos, tenga una visión tan escasa y limitada de la informática.

Todos los profesionales que trabajamos en este mundo, ya sabemos como trabajan el 99% de las empresas que dedican su esfuerzo a la tecnologia, inexistencia de comunicación con los clientes, falta de recursos, falta de toma de requisitos necesarios para abordar los desarrollos, inexistencia de análisis o diseño de las soluciones, retrasos en las entregas a los clientes, en fin, podría continuar todo el día poniendo en esta lista negra todos aquellos elementos que son importantes para trabajar con cierta calidad y que actualmente la mayor parte de las empresas se pasan por donde amargan los pepinos.

Claro, después miramos atrás, y muchos de nuestros responsables, que por cierto, son de todo menos informáticos, se preguntan por que sus clientes principalmente no estan contentos.

Para colmo, el famoso Tratado de Bolonia y la poca perspectiva de la administración en este asunto tampoco nos va a dejar bien parados.

Agarraos señores, dentro de menos tiempo del que imaginamos, en nuestras mesas de la oficina encontraremos unas bonitas gorras azules y un limpia cristales, ¿y sabéis lo que tocará?, pues sí, salir al exterior de la oficina y darle con maña y salero al cristal.

Saludos a todos.