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 swapoffentrambi 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 5mostrato anche un IO basso sui dischi durante swapoff?