Skip to content

Instantly share code, notes, and snippets.

@mrroot5
Created January 24, 2020 11:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrroot5/c7f381c0396d44a64260b799926fd309 to your computer and use it in GitHub Desktop.
Save mrroot5/c7f381c0396d44a64260b799926fd309 to your computer and use it in GitHub Desktop.
Optimizar la prioridad de los procesos de lectura y escritura en Linux

Optimizar procesos de lectura y escritura

Para ello usaremos el comando ionice, a partir de ahora llamaremos a los procesos de lectura y escritura IO por simplificar.

ionice

Para este comando encontramos 3 formas de proceder:

  • 3 o idle: este programa solamente escribirá en disco cuando ningún otro programa lo esté usando, es la menor prioridad de planificación posible.

  • 2 o best effort: este es el comportamiento por defecto. Se usa la prioridad de CPU (nice) para determinar la prioridad de planificación.

    • Se puede dividir en prioridades con valores entre 0 y 7, siendo 0 la mayor prioridad y 7 la menor.
  • 1 o real time: en este caso le damos la mayor prioridad de planificación posible.

    • Se puede dividir en prioridades con valores entre 0 y 7, siendo 0 la mayor prioridad y 7 la menor.

Aquí tienes varios ejemplos sencillos para acelerar un proceso de IO.

Usaremos el comando ls /home/ > home-list.txt en todos los ejemplos por simplificar. Este comando es utilizado para crear un fichero con un listado de los elementos de la home.

Planificación idle

sudo ionice -c3 ls /home/ > home-list.txt
  • ionice: comando que asigna más o menos prioridad de IO a un proceso.

  • -c3: planificación asignada, -1 es mayor prioridad y 3 menor prioridad.

Planificación best effort

sudo ionice -c2 ls /home/ > home-list.txt
  • ionice: comando que asigna más o menos prioridad de IO a un proceso.

  • -c2: planificación asignada, -1 es mayor prioridad y 3 menor prioridad.

Planificación best effort con máxima prioridad

sudo ionice -c2 -n0 ls /home/ > home-list.txt
  • ionice: comando que asigna más o menos prioridad de IO a un proceso.

  • -c2: planificación asignada, -1 es mayor prioridad y 3 menor prioridad.

  • -n0: prioridad asignada, 0 es mayor prioridad y 7 menor prioridad.

Prioridad real time

sudo ionice -c1 ls /home/ > home-list.txt
  • ionice: comando que asigna más o menos prioridad de IO a un proceso.

  • -c1: planificación asignada, -1 es mayor prioridad y 3 menor prioridad.

Planificación real time con mínima prioridad

sudo ionice -c1 -n7 ls /home/ > home-list.txt
  • ionice: comando que asigna más o menos prioridad de IO a un proceso.

  • -c1: planificación asignada, -1 es mayor prioridad y 3 menor prioridad.

  • -n7: prioridad asignada, 0 es mayor prioridad y 7 menor prioridad.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment