Якось мені трапилось поміняти 14 ГБ пам'яті. Після того як я вбив винуватця, я знову маю тони вільної пам’яті, тому я подумав, що зможу знову занести важливі дані . Отже, з 5 ГБ із 32 ГБ, що використовуються, та 14 ГБ місця для обміну, я побіг swapoff -a
.... а через 4 години приблизно половина роботи була закінчена.
Це означає менше 1 Мб / с, тоді як я можу легко скопіювати 200 Мб / с. Мій своп зашифрований, але так само, як і всі нормальні розділи, і з aes-ni це не призводить до помітного завантаження процесора (а заповнення місця для заміни зайняло лише кілька хвилин). Я бачу, що немає особливих причин для оптимізації swapoff
, проте мені цікаво, як це могло статися так повільно?
Просто додаю ще деякі дані: Моя основна пам’ять - 32 ГБ, і у мене є обмінний простір по 32 ГБ на кожному з 4 жорстких дисків (безумовно, надлишок, але кого це хвилює?). Весь простір підкачки можна (розшифрувати та) прочитати менше ніж за 5 хвилин:
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
Читання частини розділу не може бути повільнішим, ніж його читання. Але читання приблизно однієї 10-ї частини займає приблизно в 100 разів більше.
Я зауважив, що під час swapoff
обох процесор в основному не працював (можливо, 10% одного ядра), а також диски ("вимірювані" світлодіодами). Я також бачив, що місця заміни були відключені одна за одною.
iostat -d 5
виявлявся низький IO на дисках і під час swapoff
?