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