

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# I/O programador para AL2
<a name="io-scheduler"></a>

El I/O programador es una parte del sistema operativo Linux que clasifica y fusiona I/O las solicitudes y determina el orden en que se procesan.

I/O Los programadores son especialmente útiles para dispositivos como los discos duros magnéticos, en los que el tiempo de búsqueda puede resultar caro y en los que resulta óptimo combinar las solicitudes que se encuentran en un mismo lugar. I/O Los programadores tienen menos efecto en los dispositivos de estado sólido y en los entornos virtualizados. Esto se debe a que para los dispositivos de estado sólido, el acceso secuencial y aleatorio no difiere, y para los entornos virtualizados, el host proporciona su propia capa de programación.

En este tema se describe el I/O programador de Amazon Linux. Para obtener más información sobre el I/O programador utilizado por otras distribuciones de Linux, consulte la documentación correspondiente.

**Topics**
+ [Programadores admitidos](#supported-schedulers)
+ [Programador predeterminado](#default-schedulers)
+ [Cambiar el programador](#change-scheduler)

## Programadores admitidos
<a name="supported-schedulers"></a>

Amazon Linux admite los siguientes I/O programadores:
+ `deadline`— El I/O programador de *fechas límite* clasifica I/O las solicitudes y las gestiona en el orden más eficiente. Garantiza una hora de inicio para cada I/O solicitud. También otorga mayor prioridad a I/O las solicitudes que han estado pendientes durante demasiado tiempo.
+ `cfq`— El I/O programador *Completely Fair Queueing* (CFQ) intenta asignar I/O los recursos de manera justa entre los procesos. Ordena e inserta las I/O solicitudes en colas por proceso.
+ `noop`— El I/O programador *No Operation* (noop) inserta todas las I/O solicitudes en una cola FIFO y, a continuación, las fusiona en una sola solicitud. Este programador no ordena ninguna solicitud.

## Programador predeterminado
<a name="default-schedulers"></a>

No Operation (noop) es el I/O programador predeterminado de Amazon Linux. Este programador se utiliza por las razones siguientes:
+ Muchos tipos de instancia utilizan dispositivos virtualizados en los que el host subyacente realiza la programación de la instancia.
+ Los dispositivos de estado sólido se utilizan en muchos tipos de instancias en los que las ventajas de un I/O programador tienen menos efecto.
+ Es el I/O programador menos invasivo y se puede personalizar si es necesario.

## Cambiar el programador
<a name="change-scheduler"></a>

Cambiar el I/O programador puede aumentar o disminuir el rendimiento en función de si el programador hace que se completen más o menos I/O solicitudes en un tiempo determinado. Esto depende en gran medida de la carga de trabajo, de la generación del tipo de instancia que se está utilizando y del tipo de dispositivo al que se accede. Si cambias el I/O programador que estás utilizando, te recomendamos que utilices una herramienta, como **iotop**, para medir el I/O rendimiento y determinar si el cambio es beneficioso para tu caso de uso.

Puede ver el I/O planificador de un dispositivo mediante el siguiente comando, que se utiliza `nvme0n1` como ejemplo. Reemplace `nvme0n1` en el siguiente comando con el dispositivo que aparece en `/sys/block` en la instancia.

```
$  cat /sys/block/{{nvme0n1}}/queue/scheduler
```

Para configurar el I/O planificador del dispositivo, utilice el siguiente comando. 

```
$  echo {{cfq|deadline|noop}} > /sys/block/{{nvme0n1}}/queue/scheduler
```

Por ejemplo, para configurar el I/O planificador de un {{xvda}} dispositivo de `noop` a`cfq`, usa el siguiente comando. 

```
$  echo {{cfq}} > /sys/block/{{xvda}}/queue/scheduler
```