Asignar prioridad a comandos ejecutados desde el terminal

¿Alguna vez soñaste con ejecutar un comando desde el terminal, limitando la cantidad de recursos asignados a ese comando?

Bueno, la solución presentada aquí puede ayudarte a seguir trabajando normalmente incluso instantes después de ejecutar trabajos que usualmente resultan "muy pesados" para tu hardware y que generalmente "cuelgan" el sistema.

Procesador (CPU)

El comando nice permite modificar la prioridad de un proceso frente al resto dentro del sistema.

El kernel Linux es el encargado de planificar y asignar tiempo de CPU a cada uno de los procesos que corren en el sistema. El rango de asignación de prioridad disponible es de -20 a 20 , siendo -20 la mayor prioridad y 20 la menor.

Gracias a nice podemos asegurarnos que en momentos de usos elevados de CPU los procesos adecuados reciban el mayor % de la misma.

La sintaxis del comando nice es la siguiente:

nice -n<PRIORIDAD> COMANDO

Así pues, si quisiéramos ejecutar un proceso con prioridad 10 haríamos lo siguiente:

nice -n10 /usr/bin/convert archivo.gif archivo.jpg

Disco rígido

Similar a nice es ionice, con la diferencia de que éste último limita el acceso al disco rígido.

Un ejemplo de su utilización sería el siguiente:

ionice -c2 -n7 /usr/bin/convert archivo.gif archivo.jpg

-c2 es "mejor esfuerzo", y -n7 es la menor prioridad dentro del "mejor esfuerzo". De este modo, este comando tendrá una prioridad menor dentro de la cola de E/S (entrada/salida) que el resto de las tareas en ejecución.

ionice -c3 /usr/bin/convert archivo.gif archivo.jpg

-c3 (no hace falta aclarar un nivel de prioridad) significa "sólo inactivo". Aquellos trabajos que tengan asignados -c3 sólo se ejecutarán cuando el disco esté inactivo, lo que  significará que la actividad no tendrá impacto alguno en la ejecución del resto de las tareas pero que tardará mucho más en ejecutarse ella misma.

 

Fuente: usemoslinux

¿Quién está en línea?

Hay 4276 invitados y ningún miembro en línea