
Я разработчик программного обеспечения, и время от времени я случайно использую всю доступную оперативную память одной из моих программ. Операционная система услужливо выгружает все остальное, что я могу использовать в это время (например, веб-браузер, IDE для разработки, аудиоплеер и т. д.). После того, как мне удается завершить мою неисправную программу, другое программное обеспечение, работающее на моей машине, почти не может использоваться в течение нескольких минут, и оно не выгружается обратно самостоятельно, если я фактически не использую программное обеспечение (и не жду долгие секунды после каждого щелчка). Я могу просто sudo swapoff -a
принудительно вернуть все страницы памяти в оперативную память, но это занимает на удивление много времени. Я могу контролировать использование подкачки с помощью free
команды. Подкачка опустошается примерно со скоростью 1-2 МБ/с — запуск free
каждые пару секунд показывает разницу всего в одну цифру, и весь процесс может занять пару минут.
Моя система довольно новая, и я только что протестировал HDD, на котором хранится раздел подкачки cpipe
- чтение файла размером 7 ГБ в среднем составляет около 150-160 МБ/сек. Почему подкачка не перемещается обратно в оперативную память с такой же скоростью?
Можно ли что-то сделать, чтобы ускорить процесс?
$ uname -r
4.15.0-29-generic
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial