In qualche modo mi è capitato di scambiare 14 GB di memoria. Dopo aver ucciso il colpevole, ho di nuovo tonnellate di memoria libera, quindi ho pensato di poter recuperare nuovamente i dati importanti . Quindi, con 5 GB su 32 GB utilizzati e 14 GB di spazio di swap utilizzati, ho eseguito swapoff -a
.... e 4 ore dopo circa la metà del lavoro è stata completata.
Ciò significa meno di 1 MB / s, mentre posso facilmente copiare 200 MB / s. Il mio swap è crittografato, ma lo sono anche tutte le partizioni normali e con aes-ni non comporta alcun notevole carico della CPU (e riempire lo spazio di swap ha richiesto solo pochi minuti). Vedo che non esiste un motivo speciale per l'ottimizzazione swapoff
, tuttavia mi chiedo come potrebbe essere così lento?
Aggiungo solo altri dati: la mia memoria principale è di 32 GB e ho 32 GB di spazio di swap su ciascuno dei 4 dischi rigidi (sicuramente un problema eccessivo, ma a chi importa?). L'intero spazio di scambio può essere (decrittografato e) letto in meno di 5 minuti:
time -p sudo sh -c 'for i in /dev/mapper/cryptswap?; do md5sum $i & done; wait'
014a2b7ef300e11094134785e1d882af /dev/mapper/cryptswap1
a6d8ef09203c1d8d459109ff93b6627c /dev/mapper/cryptswap4
05aff81f8d276ddf07cf26619726a405 /dev/mapper/cryptswap3
e7f606449327b9a016e88d46049c0c9a /dev/mapper/cryptswap2
real 264.27
La lettura di una parte di una partizione non può essere più lenta della lettura di tutto. Tuttavia, leggere circa 1/10 di esso richiede circa 100 volte di più.
Ho osservato che in swapoff
entrambi i casi la CPU era principalmente inattiva (forse il 10% di un core) e così anche i dischi ("misurati" dai LED). Ho anche visto che gli spazi di swap erano disattivati uno dopo l'altro.
iostat -d 5
mostrato anche un IO basso sui dischi durante swapoff
?