Il giorno sab, 27/06/2020 alle 17.14 +0100, Antonio ha scritto:
> Il 27/06/20 16:52, Giuseppe Sacco ha scritto:
> > Credo che la soluzione sia di non usare lo swap o limitarne la
> > dimensione, per esempio a 1/2Gb. In questo modo se i processi usano
> > veramente tanta memoria vengono bloccati poco dopo aver iniziato a
> > usare lo spazio swap.
> > 
> Ma le linee guida non sono di installare una swap doppio della RAM o e'
> ormai superato?

La linea sembrerebbe quella, ma il sottinteso è «a condizione che non
venga usata». In altre parole: molti programmi allocano memoria e poi
ne usano solo una parte, quindi finché la memoria veramente usata è
minore (o quasi) della RAM effettiva, allora tutto funziona bene. Lo
swap viene usato come area di sicurezza per gestire i momenti critici.

Da quello che ho capito, nell'uso reale si ha che la memoria allocata è
più del doppio di quella veramente usato. Da questo nasce il calcolo
che citi.

Però. Su un sistema con decine di utenti, se un processo comincia a
usare lo swap, tutti gli altri noteranno un rallentamento non eccessivo
e proseguiranno i loro lavori; ma se questo capita in un sistema con un
solo utente, allora la macchina va in tilt perché tu, come utente, usi
un programma alla volta e quello si prende tutta la RAM e gli altri
vengono messi sullo swap. Poi premi alt-ctrl-f1 e cerchi di fare il
login per uccidere firefox e scopri che il getty è proprio tra i
processi finiti sullo swap visto che nessuno lo usava. Se invece hai un
sistema con molti utenti, molto probabilmente l'equivalente del getty
(che magari è sshd) è molto più usato e non è quindi messo sullo swap.

Ribadisco, sulle macchine server, metti tutto lo swap necessario, ma
sui computer personali, riducilo al minimo e compra la RAM che ti
serve. Oppure metti lo swap su un RAID di dischi NVMe :-)

Ciao,
Giuseppe

Rispondere a