# Scheduler: qual è il migliore

## mambro

Nelle ultime versioni del kernel sono disponibili diversi scheduler da poter scegliere in fase di configurazione. Io ho sempre usato CFQ poichè è consigliato per l'utenza desktop. Voi cosa usate? differenze sostanziali?

----------

## tuxer

Ma di default non sono selezionate tutte e 3 nel kernel?

Io le ho lasciate tutte e 3...

----------

## Peach

anche io uso cfq... possibile che dia un problema di stop dell'audio di alsa quando -ad esempio- si trascinano le finestre? vorrei investigare questo aspetto..

inoltre qualcuno ha idea se embeddare tutti e tre gli scheduler possa dare problemi o ha idea di come vegono ripartiti ed usati?

----------

## kaosone

ovviamente non si possono ussare tre scheduler contemporaneamente.. per i desktop il migliore penso sia cfq sia per la cpu che per l'i/o, infatti i tempi di risposta sono bassi anche se si perde in prestazioni

----------

## .:chrome:.

 *mambro wrote:*   

> Nelle ultime versioni del kernel sono disponibili diversi scheduler da poter scegliere in fase di configurazione. Io ho sempre usato CFQ poichè è consigliato per l'utenza desktop. Voi cosa usate? differenze sostanziali?

 

ma che domanda è? non è possibile rispondere a una domanda del genere, perché si tratta di tre sceduler (tra l'altro sono scheduler I/O, non scheduler di processo) che nascono per scopi diversi. ognuno è il migliore per lo scopo per cui è stato pensato.

anticipatory è il più semplice, quindi anche il più leggero da gestire. è una scelta obbligata su sistemi embedded

cfq è stato fatto sul modello dell'omonimo scheduler di traffico per la rete. è estremamente complesso, ma in presenza di numerosi (ma tanti, tanti, tanti) processi che cercano di accedere alle risorse si comporta molto bene. è il migliore per lo scheduling degli hard disk che ospitano databases, e per gli accessi raw alle periferiche.

deadline è una via di mezzo tra i due.

un migliore in senso assoluto non c'è, altrimenti spazzerebbe via gli altri due, non ti pare? personalmente sul mio portatile uso deadline, ma ripeto... dipende sempre dall'uso che fai della tua macchina

----------

## mambro

Infatti io intendevo nell'ambito desktop  :Wink: 

----------

## .:chrome:.

 *mambro wrote:*   

> Infatti io intendevo nell'ambito desktop 

 

nell'ambito desktop... io escluderei CFQ, poi per gli altri due... si tratta di scelte personali

----------

## lavish

 *k.gothmog wrote:*   

> nell'ambito desktop... io escluderei CFQ, poi per gli altri due... si tratta di scelte personali

 

Io ho ragionato proprio in modo diametralmente opposto al tuo. uso CFQ sul desktop e deadline sul server... le info le ho prese dall'help del kernel:

 *Quote:*   

> 
> 
>   x CONFIG_IOSCHED_AS:                                                                                                                x  
> 
>   x                                                                                                                                   x  
> ...

 

Quindi questo smentisce _tutto_ quello che hai detto tu... almeno a leggere qui...

----------

## .:chrome:.

oh, oh... hai ragione...

ma che casino ho combinato? li ho invertiti  :Embarassed: 

forse è meglio che per oggi mi stacchi dal computer e mi legga un libro. sto veramente impazzendo

chiedo scusa per il lapsus

----------

## kaosone

allora ho scritto una cavolata: pensavo si chiamasse CFQ anche quello della cpu implementato da kolivan invece si chiama STAIRCAISE quello per la cpu e CFQ quello per l'io

io li consiglio caldamente entrambi, sicuramente sono quelli con il minor tempo di reazione , quindi per i desktop ottimi

----------

## tuxer

Ma se ci sono tutti e 3 usa quello di default allora?

----------

## kaosone

si, quello per l'IO lo puoi controllare/settare in  /sys/block/hda/queue/scheduler

----------

## lavish

 *tuxer wrote:*   

> Ma se ci sono tutti e 3 usa quello di default allora?

 anticipatory

----------

## fedeliallalinea

 *k.gothmog wrote:*   

> non è possibile rispondere a una domanda del genere, perché si tratta di tre sceduler (tra l'altro sono scheduler I/O, non scheduler di processo) che nascono per scopi diversi. ognuno è il migliore per lo scopo per cui è stato pensato.

 

Concordo con l'affermazione

----------

## kaosone

lui non chiede "in generale", ma per l'uso desktop  :Wink: 

----------

## Apetrini

Io amo il CFQ, anche se deadline combinato con reiser4 è quello che mi dava piu performance in assoluto.

----------

## !equilibrium

deadline sui servers, soprattutto quelli con oracle (ho notato una netta miglioria nelle risposta del server in caso di molte connessioni al DB, e sopratutto l'uso delle risorse è minore rispetto allo scheduler anticipatory, con grande respiro e sollievo del server stesso  :Laughing:  )

sul desktop ho provato CFQ, ed effettivamente le performance sono minori rispetto agli altri 2 a vantaggio però di una maggior equa suddivisione dei task I/O a vantaggio della stabilità generale.

----------

## gutter

 *lavish wrote:*   

> 
> 
> Io ho ragionato proprio in modo diametralmente opposto al tuo. uso CFQ sul desktop e deadline sul server... le info le ho prese dall'help del kernel:
> 
> 

 

Idem  :Wink: 

----------

## cloc3

Dalla lettura dei vari interventi, mi pare che le caratteristiche dei diversi scheduler siano desumibili dalle informazioni del kernel.

Alcuni però affermano di avere delle preferenze precise e ritengono che le differenze siano sensibilmente osservabili. Ben 11 persone, fino ad ora hanno persino votato.

Allora, vorrei chiedere fino a che punto la scelta dello scheduler può essere determinante per un certa funzionalità e come si possa testarne il funzionamento.

----------

## Danilo

Qualcuno mi dice come selezionarli nel kernel?

Non riesco a trovarli

----------

## mambro

Device drivers> block device > IO schedulers

----------

## ballero

Il CFQ perche' mi da' piu' stabilita' con la cpu overcloccata.

----------

## neryo

 *cloc3 wrote:*   

> 
> 
> Allora, vorrei chiedere fino a che punto la scelta dello scheduler può essere determinante per un certa funzionalità e come si possa testarne il funzionamento.

 

Beh mi sa che ti devi fidare di quello che c'e' scritto nell'help... quindi valuti quale meglio si addice alle tue necessita'!  :Wink: 

----------

## Mr.Evolution

ma un bel benchmark per valutare meglio le potenzialità no???

----------

## sourcez

Io ho notato che li avevo compilati tutti e tre nel kernel, e dando un cat:

```
mrsource@mrsource ~ $ cat /sys/block/hda/queue/scheduler

noop [anticipatory] deadline cfq
```

Questo significa che sto usando anticipatory presumo.

Invece, dato che uso i gentoo-sources, lo scheduler della CPU è unico?

----------

## Mr.Evolution

 *sourcez wrote:*   

> Io ho notato che li avevo compilati tutti e tre nel kernel, e dando un cat:
> 
> ```
> mrsource@mrsource ~ $ cat /sys/block/hda/queue/scheduler
> 
> ...

 

PRESUNZIONE ERATTA!

Per cambiare semplicemente dai un bel

```
echo "cfq" >  /sys/block/hda/queue/scheduler
```

----------

## randomaze

 *Mr.Evolution wrote:*   

> PRESUNZIONE ERATTA!

 

Non é mia abitudine far notare un problema di ortografia... tuttavia scegliere tra "ERRATA" ed "ESATTA" potrebbe dare dei problemi  :Rolling Eyes: 

----------

## sourcez

Ho settato CFQ e il sistema pare rispondere meglio  :Laughing: 

----------

## Danilo

 *Mr.Evolution wrote:*   

> 
> 
> Per cambiare semplicemente dai un bel
> 
> ```
> ...

 

Ho dato il comando segnalato ma al riavvio mi ricompare anticipatory

Potrei dare un comando del genere nel servizio personal in fase di startup, ma c'e' un file di configurazione?

Ho provato sia con man scheduler che con man cfq ma nisba   :Sad: 

----------

## xlyz

 *Danilo wrote:*   

> Potrei dare un comando del genere nel servizio personal in fase di startup, ma c'e' un file di configurazione?

 

usa /etc/conf.d/local.start

----------

## gutter

 *sourcez wrote:*   

> 
> 
> Questo significa che sto usando anticipatory presumo.
> 
> 

 

Esattamente

----------

## Mr.Evolution

 *randomaze wrote:*   

>  *Mr.Evolution wrote:*   PRESUNZIONE ERATTA! 
> 
> Non é mia abitudine far notare un problema di ortografia... tuttavia scegliere tra "ERRATA" ed "ESATTA" potrebbe dare dei problemi 

 

Hai perfettamente ragione

----------

## SteelRage

premettendo che non ho le competenze per discutere su questi tre tipi di scheduler...

Vorrei farvi una domanda che mi interessa particolarmente.

Per quanto riguarda le applicazioni audio (come Hard Disk recording, DSP, etc etc).. Quale potrebbe dare -dal punto di vista teorico- le migliori prestazioni? 

Le esigenze principali, per quanto riguarda l'audio, sono la bassa latenza ed un flusso "costante" dei dati (infatti, per lavorare decentemente con jack, è necessario patchare il kernel, ottmizzandolo per le applicazioni realtime) 

Ad esempio... se la CPU/RAM sono vicine all'overload, è importante che non vengano sprecati cicli per le altre applicazioni... 

Scusate se mi sono espresso molto male... Ma, ripeto... Non ho le competenze per parlare dell'argomento :\

----------

## gutter

Penso che nel tuo caso siano più importanti gli scheduler di processo e non di I/O.

----------

## SteelRage

 *gutter wrote:*   

> Penso che nel tuo caso siano più importanti gli scheduler di processo e non di I/O.

 

Uhm... Beh, per quanto riguarda l'I/O... Le richieste sono le stesse...

Flusso costante dei dati quando viene fatto lo streaming da RAM a disco fisso, etc etc...

Steel|Ignorante  :Very Happy: 

----------

## gutter

 *SteelRage wrote:*   

> 
> 
> Uhm... Beh, per quanto riguarda l'I/O... Le richieste sono le stesse...
> 
> Flusso costante dei dati quando viene fatto lo streaming da RAM a disco fisso, etc etc...
> ...

 

Quindi nel tuo caso sono più importanti gli scheduler di processo  :Wink: 

----------

