Почему переход от ОЗУ к подкачке происходит быстро, а от подкачки к ОЗУ очень медленно?
Когда я запускаю программу, которой требуется больше доступной памяти, я вижу, что оперативная память довольно быстро «очищается» путем перемещения неиспользуемых (= наименее используемых) страниц для обмена.
Но потом, когда я бегу
swapoff -a ; swapon -a
требуется очень много времени (минуты для нескольких ГБ свопа), чтобы переместить своп обратно в ОЗУ.
Своп дополнительно есть на SSD. Или сделай swapoff -a
команду какой-то специальной проверки, которую я могу избежать / отключить?
Если возможно, вы можете попросить ядро не использовать подкачку, кроме случаев, когда используется вся оперативная память. Это параметр "vm.swappiness = 0", который нужно добавить в sysctl.conf. Вам нужно перезагрузиться, чтобы увидеть эффекты.
Сбрасывать своп не нужно ...
Вы должны прочитать больше о том, как управление памятью работает в Linux, чтобы полностью понять это.
Я предполагаю, что он проходит через большую часть ОЗУ и перемещает ее для дефрагментации, чтобы можно было переместить материал из подкачки в блоки непрерывной памяти.