Perché Ubuntu 16.04 imposta tutti gli scheduler di I / O su "scadenza"?

15

Ho appena installato Xubuntu 16.04-64bit in una seconda partizione sul mio laptop. Ho notato che a volte sembrava un po 'lento, quindi ho controllato quale scheduler di I / O utilizzava per quell'unità, che risulta essere deadline per tutte le unità. Ho un paio di SSD e hard disk quindi so che "deadline" è la cosa migliore per SSD e cfq per i dischi rigidi.

Ho avviato in 14.04 su un'altra partizione e utilizza cfq per le unità rotanti e deadline per SSD, come dovrebbe. Inoltre, ho cercato /etc/udev/rules.d per vedere se 14.04 stava usando una regola da configurare per il tipo di unità ma non c'era, quindi presumo che il kernel lo stia facendo.

Quindi mi chiedo se questo è un bug o stanno usando "deadline" per tutto ora?

Aggiornamento: Il commento che ho scritto su /etc/udev/rules.d è stato un errore. Infatti ho usato una regola udev per cambiare lo scheduler (proprio come la risposta ha sotto) in base al tipo di rotazione da quando ho iniziato a usare un SSD, qualche anno fa. Immagino di aver dimenticato ... di invecchiare. Ad ogni modo, uno dei riferimenti che ho usato era wiki di ottimizzazione SSD Debian .

Non sarebbe una buona idea se fosse incluso? Solo un suggerimento!

    
posta curt54 08.06.2016 - 15:10

3 risposte

4

Con la versione 14.04, lo scheduler predefinito per il kernel 3.13 è stato modificato da CFQ a Deadline .

Non esiste più un kernel del server separato e lo sheduler CFQ non è adatto a molti scenari di utilizzo del server, ad esempio KVM scrive i timeout . Esistono addirittura regressioni di prestazioni sul desktop con dispositivi USB .

    
risposta data NGRhodes 11.06.2016 - 00:59
28

Il team del kernel di Ubuntu esegue regolarmente molte analisi dei diversi carichi di lavoro simulati su diversi file system e scheduler di I / O per avere un'idea della migliore scelta di scheduler I / O generica. La risposta generale è che non esiste una scelta perfetta dello scheduler I / O per una configurazione generica su tutti i diversi tipi di installazioni per tutti i diversi tipi di supporto. I punti salienti da ricordare sono:

  1. I sistemi si stanno spostando su SSD, quindi per questi sono preferibili il limite massimo o la scadenza; il noop ha un sovraccarico della CPU inferiore alla scadenza.

  2. CFQ vs Deadline è una chiamata difficile. CFQ consente una maggiore flessibilità. Tuttavia, abbiamo scoperto che per una gamma più ampia di operazioni di I / O simulate, la scadenza prevedeva latenze più basse e un throughput leggermente più elevato rispetto al CFQ.

  3. I kernel di riferimento vengono regolarmente (ogni test del kernel richiede più di 3 giorni per essere completato) per una gamma di file system e di schedulatori I / O. Da questo e altri dati assortiti cerchiamo di prendere una decisione informata sulla scelta migliore, vedi:

link

Ci sono pro / contro per tutti gli scheduler I / O, quindi qualsiasi default non è perfetto e il team del kernel di Ubuntu è sempre disposto ad avere input per la scelta predefinita se i dati e le ragioni convincenti ci mostrano di cambiare altrimenti.

    
risposta data Colin Ian King 08.06.2016 - 17:51
9

Non so perché gli sviluppatori abbiano deciso di scegliere deadline come programmatore di default, forse perché la maggior parte dei nuovi computer viene fornita con un SSD, sul quale normalmente sono installati i sistemi. Puoi impostare manualmente lo scheduler in questo modo, nel caso non lo avessi già installato ... installa gksu :

Apri un terminale ed esegui:

sudo apt install gksu  

Quindi esegui questo comando:

gksudo gedit /etc/udev/rules.d/60-schedulers.rules  

Incolla il seguente testo nel file vuoto e salva il file modificato.

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  

Riavvia il sistema operativo e ora stai utilizzando gli scheduler ottimali per HDD e SSD.

    
risposta data cl-netbox 08.06.2016 - 15:27

Leggi altre domande sui tag