[Tech] swap dove ?

Simone Piccardi piccardi@softwarelibero.it
Lun 19 Apr 2004 15:43:37 CEST


On Mon, 2004-04-19 at 12:02, Marco Ermini wrote:
> Certo, se per il vocabolario testa o croce è un algoritmo... round-robin
> significa che a turno vengono smistate le richieste a tutte le risorse
> disponibili senza considerare alcun parametro (che ne so, utilizzo,
> carico, grandezza della partizione, velocità di accesso ecc.).
Mi spieghi cosa c'entra il carico (di che poi CPU, memoria?) con
l'utilizzo di una specifica partizione rispetto ad un'altra? Idem con la
dimensione delle stesse. 

La swap serve per buttarci roba le pagine quando la memoria e` piena,
non vedo nessun senso fare algoritmi diversi per scegliere quale
partizione usare sulla base di un qualsivoglia carico di lavoro (tipo se
la CPU passa l'80% vado su quel disco, o se ho piu' di 30Mb liberi uso
solo quelli pari). 

Il solo parametro che ha senso per discriminare l'uso di diverse
partizioni di swap e` la velocita` di accesso al disco, ed il meccanismo
di round robin con priorita` a questo serve, a far scegliere
prevalentemente le partizioni di swap con dischi piu` veloci rispetto a
quelle con dischi piu` lenti, e a distribuire l'accesso quando i dischi
hanno la stessa velocita` nella maniera piu` semplice, immediata (e
veloce) possibile.

> Gli algoritmi devono essere semplici quando serve, altrimenti è bene che
> siano sofisticati :-)
Infatti qui bastano semplici. 

> La domanda di Leonardo era più fine: se io aggiungo una partizione di
> swap, il kernel di Linux sceglie quale utilizzare in base ad un qualche
> metro di giudizio? la risposta in buona sostanza è: NO, utilizzerà a turno
> entrambe le partizioni senza curarsi del fatto che una sia più o meno
> veloce. L'unico discrimine immagino che sia il fatto che una delle due sia
> piena (almeno, me lo auguro...).
Si', il kernel sceglie in base a un metro di giudizio. Per curarsi che
sia piu` veloce usa la priorita`, per curarsi di distribuire su piu`
dischi della stessa velocita' gli dai la stessa priorita` e lui usera'
lo spazio libero a turno fin che ce n'e`. E ti immagini male (se non lo
sai come funziona, evita di fare supposizioni) l'unico discrimine NON
e`, come mi pare di aver ripetuto piu` volte, il fatto che una delle due
sia piena.

> Quindi la cosa importante è pianificare, mentre aggiungere a latere
> partizioni di swap deve essere fatto con attenzione, proprio perché il
> kernel _non_ le utilizza intelligentemente - almeno questa è la mia
> conclusione...
Il kernel le utilizza come gli dici di farlo, certo chi assegna maggiore
priorita` a un disco lento non fa una cosa furba, ma questo ha piu` a
che fare con la sua di intelligenza, non con quella del kernel.

Ciao
Simone




Maggiori informazioni sulla lista flug-tech