Inicio > Linux, MySQL > IO Scheduler en Linux & MySQL

IO Scheduler en Linux & MySQL

Miércoles, 2 de diciembre de 2009

El IO scheduler de un sistema operativo es la parte del mismo encargada de organizar las operaciones de entrada y salida contra el disco.

En los kernels actuales de Linux (2.6.x) tenemos disponibles varios de estos schedulers (planificadores). Por ejemplo en la distribución Red Hat Linux 5 disponemos de los siguientes:

  • noop
  • anticipatory
  • deadline
  • cfq

Cada uno de estos planificadores tiene ventajas e inconvenientes según el tipo de uso que se le vaya a dar al disco del servidor. Por defecto, en Red Hat viene configurado como planificador cfq. El planificador se puede configurar para cada disco del servidor. Podemos ver el planificador con el siguiente comando:

# cat /sys/block/<<disco>>/queue/scheduler

En el caso de MySQL parece que el planificador cfq no es el que proporciona el rendimiento optimo. Parece que los planificador noop o deadline proporcionan mejor rendimiento.

Para cambiar el planificador de nuestro disco lo podemos hacer de dos formas:

  • En el arranque del servidor: añadiendo el parámetro elevator=<<nombre-scheduler>> a la línea kernel del gestor de arranque. Esto cambiará el planificador para todos los discos duros de nuestro servidor.
  • Mediante el siguiente comando:
# echo "<<nombre-scheduler>>" > /sys/block/<<disco>>/queue/scheduler

La segunda forma permite cambiar el planificador en caliente y también especificar un planificador distinto para cada disco. Por ejemplo, en el caso se un servidor MySQL con un disco para el sistema operativo y otro para los datos del MySQL, podríamos configurar cfq para el disco del sistema operativo y deadline para el disco de los datos.

Más información:

Linux, MySQL ,

  1. Sin comentarios aún.
  1. Miércoles, 2 de diciembre de 2009 a las 20:32 | #1