Programador IO de baja latencia

Programador IO de baja latencia

Tengo algunas máquinas virtuales que ejecutan la imagen 14.04-1 LTS basada en la nube de Ubuntu. Quería ver el rendimiento de IO de diferentes programadores de IO en la VM, así que fui /sys/block/<drive>/queue/scheduleral sistema operativo invitado para cambiar el programador de IO. Por lo general, debería haber cfq, deadlineo nooppara elegir. Pero lo que vi es none. ¿Significa que Canonical ha eliminado el programador de E/S en la imagen basada en la nube o que el programador noneaquí es el programador renombrado noop? ¿Y qué pasa si no tenemos un programador de E/S en el sistema? ¿Todas las solicitudes de io se enviaron directamente al host en orden FIFO?

¡Gracias por arrojar algo de luz!

Respuesta1

Deeste Wiki de Debian:

Programador IO de baja latencia

(Este paso no es necesario para los SSD que utilizan el protocolo NVMe en lugar de SATA, que omiten el programador de E/S tradicional y utilizan el blk-mqmódulo en su lugar).

El programador de E/S predeterminado pone en cola los datos para minimizar las búsquedas en los HDD, lo cual no es necesario para los SSD. Por lo tanto, utilice el "deadline"programador que simplemente garantiza que las transacciones masivas no ralenticen las transacciones pequeñas: instale sysfsutilsy

echo "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf

(ajuste sdX para que coincida con su SSD) reinicie o

echo deadline > /sys/block/sdX/queue/scheduler

Entonces, la respuesta es: noneNO es un alias para noop. nonesignifica "el programador no se utiliza".

Respuesta2

Parece que en los kernels >= 3.13 ya noneno es un alias noop. Se muestra cuando elblk-mqmarco de E/SEstá en uso; esto significa una omisión completa de los antiguos programadores, ya blk-mqque (en este momento) no tiene ningún programador para seleccionar.

En kernels anteriores, nonerealmente hay un alias poco documentado para noop. Veraquípara más detalles.

Respuesta3

Ninguno no es un alias de noop.

No se muestra ninguno porque no hay ningún programador en uso. Los SSD que utilizan el protocolo NVMe en lugar de SATA omiten el programador de E/S tradicional.

Respuesta4

https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers

none (Multicola) El programador de E/S no operativas de múltiples colas. No reordena las solicitudes, gastos generales mínimos. Ideal para dispositivos de E/S aleatorias rápidas como NVME.

información relacionada