Modificar la prioridad de procesos en ejecución

Conceptos Claves

Conocer la prioridad por defecto de un proceso

Ejecutar un programa con mayor o menor prioridad que la prioridad por defecto

Cambiar la prioridad de un proceso en ejecución.

Términos y Utilidades

  • nice
  • ps
  • renice
  • top

Introducción

Eventualmente, uno puede necesitar asignar prioridades de uso de CPU a los procesos. Para ello utilizaremos los comandos nice y renice. Se utiliza nice para lanzar un programa con una determinada prioridad y renice para cambiar la prioridad de un proceso.

Comando ps

El comando ps nos permite observar los procesos en ejecución y sus detalles.

Sintaxis

ps [opciones]

Se puede modificar su comportamiento, mediante sus opciones, para realizar las siguientes acciones:

Mostrar todos los procesos: Por defecto, ps muestra todos los procesos que fueron ejecutados desde la terminal propia. La opción -A y -e causan que se muestren todos los procesos y la opción x muestra todos los procesos de los cuales es dueño el usuario que ejecuta el programa. La opción x también nos muestra un poco mas de información, mostrándonos el estado de los procesos.

Mostrar los procesos de un usuario especifico: Para ver los procesos que pertenecen a un determinado usuario, se usan las opciones -u user, U user y --User usuario.

Mostrar Información adicional: Las opciones -f, -l, j, l, u y v; me muestran información adicional.

Mostar con orden jerárquico: -H, -f y –forest muestran la jerarquía de los procesos.

Mostrar mas 80 caracteres: Las opciones w y -w muestran una salida mas amplia que la normal.

Interpretación de la salida de ps

Usuario: El nombre del usuario que ejecuta el programa. Así como los archivos tienen un usuario, un grupo y unos permisos determinados asignados, también los procesos pertenecen a usuarios. Un proceso contará de cara al sistema de archivos con los mismos permisos que tenga el usuario que lo creó.

ID del proceso: El PID es el numero de identificación asociado al proceso. Es importante ya que en el caso de querer modificar o matar el proceso, seguramente lo necesitemos.

ID del proceso padre: El ppid identifica al proceso padre que dio origen al proceso actual.

TTY: Algunos procesos tendrán asociado un identificador de terminal. No todos los procesos tienen un numero de terminal; los demonios y los programas de X no tienen terminal asociada.

Tiempo de uso de CPU: Los encabezados TIME y %CPU muestran dos medidas de tiempo de uso de cpu. La primera nos muestra el tiempo que llevamos consumido, mientras que la segunda nos el porcentaje de CPU que consume el proceso al momento de ejecutar ps.

Prioridad de CPU: La columna NI representa la prioridad de uso de CPU que tienen los procesos. El valor por defecto es 0. Valores positivos representan menor prioridad, mientras que los negativos representan mayor prioridad.

Consumo de memoria: %RSS (Resident Set Size) es el tamaño del proceso en la memoria principal del sistema y %MEM porcentaje de la memoria principal usada por el proceso.

Comando: Generalmente la ultima columna muestra el comando que genero el proceso.

Top: Una variante dinámica de ps

La herramienta top nos muestra en tiempo real los procesos que están en nuestro sistema, de una manera más gráfica que como lo hace ps. Por defecto, top nos ordena los procesos por uso de CPU.

Prioridad nice

El nivel de prioridad nice es un valor que mide la prioridad que uso de CPU que tiene un proceso. Por defecto, los procesos se crean con una prioridad nice de 0. El mínimo de prioridad que pueden recibir es 19 y el máximo es -20. Mientras mayor se el numero nice, menor es la prioridad.

La prioridad de un proceso se puede determinar mediante el examen de la columna PRI en los resultados producidos por top o ps –l.

Comando nice

El comando nice nos permite ejecutar un proceso con una prioridad diferente a la prioridad por defecto

Sintaxis

# nice -n<PRIORIDAD> COMANDO

Ejemplos

Ejecutar un proceso con la mayor prioridad posible (20)

nice -n-20 ./prueba.pl

Comando renice

El comando renice nos permite ajustar la prioridad de un proceso que ya se encuentra en ejecución. Es necesario tener privilegios de root para aumentar a prioridad de un proceso.

Sintaxis

renice [-n] prioridad [[-p] pid]

results matching ""

    No results matching ""