

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Lo I/O scheduler è una parte del sistema operativo Linux che ordina e unisce I/O le richieste e determina l'ordine in cui vengono elaborate.

I/O gli scheduler sono particolarmente utili per dispositivi come i dischi rigidi magnetici, dove i tempi di ricerca possono essere costosi e dove è ottimale unire le richieste condivise. I/O gli scheduler hanno un impatto minore sui dispositivi a stato solido e sugli ambienti virtualizzati. Questo perché per i dispositivi solid state, l'accesso sequenziale e casuale non differisce e, per gli ambienti virtualizzati, l'host fornisce il proprio livello di pianificazione.

Questo argomento descrive lo I/O scheduler di Amazon Linux. Per ulteriori informazioni sullo I/O scheduler utilizzato da altre distribuzioni Linux, consulta la rispettiva documentazione.

**Topics**
+ [Pianificatori supportati](#supported-schedulers)
+ [Pianificatore di default](#default-schedulers)
+ [Modifica del pianificatore](#change-scheduler)

## Pianificatori supportati
<a name="supported-schedulers"></a>

Amazon Linux supporta i seguenti I/O scheduler:
+ `deadline`— Lo I/O scheduler *Deadline* ordina le I/O richieste e le gestisce nell'ordine più efficiente. Garantisce un orario di inizio per ogni richiesta. I/O Assegna inoltre una priorità più elevata I/O alle richieste pendenti da troppo tempo.
+ `cfq`— Lo I/O scheduler *Completely Fair Queueing* (CFQ) tenta di allocare equamente le risorse tra i processi. I/O Ordina e inserisce le richieste nelle code suddivise per processo. I/O 
+ `noop`— Lo I/O scheduler *No Operation* (noop) inserisce tutte le I/O richieste in una coda FIFO e poi le unisce in un'unica richiesta. Questo pianificatore non esegue l'ordinamento delle richieste.

## Pianificatore di default
<a name="default-schedulers"></a>

No Operation (noop) è lo I/O scheduler predefinito per Amazon Linux. Questo pianificatore viene utilizzato per i seguenti motivi:
+ Molti tipi di istanza utilizzano dispositivi virtualizzati in cui l'host sottostante esegue la pianificazione dell'istanza.
+ I dispositivi a stato solido vengono utilizzati in molti tipi di istanze in cui i vantaggi di uno I/O scheduler hanno un impatto minore.
+ È lo I/O scheduler meno invasivo e può essere personalizzato se necessario.

## Modifica del pianificatore
<a name="change-scheduler"></a>

La modifica dello I/O scheduler può aumentare o diminuire le prestazioni a seconda che lo scheduler comporti il completamento di un numero maggiore o minore di I/O richieste in un determinato periodo di tempo. Ciò dipende in gran parte dal carico di lavoro, dalla generazione del tipo di istanza utilizzata e dal tipo di dispositivo a cui si accede. Se modifichi lo I/O scheduler utilizzato, ti consigliamo di utilizzare uno strumento, come **iotop**, per misurare I/O le prestazioni e determinare se la modifica è vantaggiosa per il tuo caso d'uso.

È possibile visualizzare lo I/O scheduler per un dispositivo utilizzando il seguente comando, che utilizza `nvme0n1` come esempio. Sostituisci `nvme0n1` nel seguente comando con il dispositivo elencato in `/sys/block` nell'istanza.

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

Per impostare lo I/O scheduler per il dispositivo, utilizzare il seguente comando. 

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

Ad esempio, per impostare lo I/O scheduler per un {{xvda}} dispositivo dal `noop` al`cfq`, utilizzate il comando seguente. 

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