[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Che grande delusione questo Firefox e Chromium oppure linux?





Il lun 29 giu 2020, 16:35 Davide Prina <davide.prina@gmail.com> ha scritto:
On 29/06/20 16:00, Giulio Turetta wrote:

> Possiamo dire che la swap serve ad ospitare dati che il sistema ritiene
> più conveniente ritrovare "pronti all'uso" piuttosto che doverli
> ricreare

non sono d'accordo. Lo swap server per ospitare quella parte di RAM
usata (dati + eseguibili) che per diversi motivi Linux (considero solo
questo kernel, ma il discorso può essere più generico) ha ritenuto non
essere necessaria nell'immediato e/o per avere una quantità appropriata
di RAM libera pronta all'uso

È evidente che nell'ambito della VM la "fetta" a accesso più rapido è la RAM. 
Cosa va in swap e cosa rimane in RAM è un discorso complesso e per nulla scontato, incluso il mantenimento della RAM "pronta all'uso" che richiederebbe un capitolo a parte (free o available?).
Ciò non toglie che il principio generale rimanga lo stesso, qualche che sia la forma di conservazione (che l'accesso sia più rapido o più lento non modifica il concetto di fondo).


> Se vuoi fare un esperimento puoi disattivare la swap:
>
> $ sudo swapoff -a

io consiglierei di giocare con swappiness per impostare il parametro che
configura l'uso dello swap da parte di Linux.
swappiness può assumere valori tra 0 e 100, dove più è basso è il valore
e più è basso l'uso dello swap da parte di Linux (0 = non usare lo
swap), mentre più è alto il valore e più è alto l'uso dello swap da
parte di Linux (100 = usa lo swap per tutto ciò che non è attualmente
usato).

Giocare con swappiness può essere interessante come esperimento e può essere utile in alcuni casi. 

Anche per la swappiness però il comportamento è molto più complesso di quanto descritto generalmente e la banalizzazione che se ne fa (e se ne fa molta sul tema) porta spesso ad un uso inutile se non dannoso dello strumento.
Così come descritto in genere sembra infatti che esista una correlazione lineare tra il valore di swappiness e l'impiego della swap: pur sorvolando sulle differenze tra le varie versioni del kernel (vedi l'effetto del valore 0) va detto chiaramente che non è così.

Il concetto secondo cui esistono cose "necessarie nell'immediato" da tenere in RAM è fallace. Non a caso in passato abbiamo assistito a problemi (talvolta anche gravi con sistemi al collasso) per un uso sconveniente della VM con impostazioni sia predefinite che personalizzate (senza consapevolezza).

Va sempre detto che la VM è usata per la quasi totalità dai processi. Linux è solo il regista ma il suo grado di "consapevolezza" circa i dati in VM e l'uso che se ne intende fare è scarsa. È importante puntualizzare questo aspetto perché spesso gli utenti hanno un idea piuttosto confusa sul punto.

Per sperimentare la cosa basta collegare un disco esterno e provare a copiare da o su di esso un grosso file (con dimensioni pari o maggiori della RAM installata): la RAM sarà saturata dalla cache che Linux mantiene per evitare nuovo I/O dal disco in caso di ulteriori letture. Questo è corretto secondo il principio (innegabile) che la RAM va sempre sfruttata il più possibile (avere RAM libera è concettualmente un errore) ma non è sempre favorevole. L'operazione potrebbe spingere in swap fette di VM ritenute inattive ma che potrebbero invece divenirlo a breve. Il successivo richiamo di ampie fette di VM dalla swap ha portato in passato a crash ricorrenti nelle distribuzioni quando si operava (per esempio) con grandi volumi di I/O.

Questo per ribadire semplicemente che le configurazioni possibili sono molte e il tema della VM e l'uso che se ne fa è molto molto molto complesso. Meglio non dare mai nulla per scontato ed approfondire con attenzione il significato di ogni parametro di configurazione che si imposta.

Per la sola swappiness si potrebbe scrivere un romanzo :-)

https://www.howtogeek.com/449691/what-is-swapiness-on-linux-and-how-to-change-it/


Reply to: