Какую команду можно использовать для принудительного освобождения всего раздела подкачки обратно в память?


12

Какую команду можно использовать для принудительного освобождения всего раздела подкачки обратно в память?

Предположим, что у меня достаточно памяти.

Ответы:


19

Из этого вопроса задайте Ubuntu :

Вы также можете очистить своп, запустив его, swapoff -aа затем swapon -aот имени root вместо перезагрузки, чтобы добиться того же эффекта.

Таким образом:

$ free -tm
...
Swap:         6439        196       6243
...
$ sudo swapoff -a
$ sudo swapon -a
$ free -tm
...
Swap:         6439          0       6439
...

Как отмечается в комментарии, если у вас недостаточно памяти, swapoffэто приведет к ошибкам « нехватки памяти» и к процессам уничтожения ядра для восстановления ОЗУ.


3
Объясняя это далее, если у вас недостаточно доступной оперативной памяти, swapoffэто приведет к ошибкам нехватки памяти, и ядро ​​начнет убивать процессы, чтобы восстановить некоторые из них. Используйте это с осторожностью.
Багамат

Лучше надеяться на это; Линукс ведет себя довольно весело, когда у вас заканчивается память без активного обмена вообще ...
Шадур

1

Как уже отмечалось, простое отключение всех операций подкачки приведет к тому, что ядро ​​начнет убивать, если у него недостаточно свободной памяти. Если вы хотите избежать этого, сначала создайте второй набор свопов. Потом:

swapon /second/swap/device && swapoff /first/swap/device 
swapon /first/swap/device && swapoff /second/swap/device

Это все равно поменяется во всем, но если не хватит места, оно будет перенесено на второе устройство подкачки вместо случайного убийства. Тогда просто сдвинь все назад.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.