Я разработчик программного обеспечения, и время от времени я буду случайно использовать всю доступную оперативную память с одной из моих программ. Операционная система выложит все, что я могу использовать в данный момент (например, веб-браузер, среду разработки, аудиоплеер и т.д.). После того, как мне удастся уничтожить мою некорректно работающую программу, другое программное обеспечение, работающее на моем компьютере, станет практически непригодным для использования в течение пары минут, и оно не сможет переключиться обратно само по себе, если я на самом деле не использую программное обеспечение (и не буду ждать долгие секунды после каждого щелчка), Я могу просто sudo swapoff -a
чтобы принудительно вернуть все страницы памяти в оперативную память, но это занимает удивительно много времени. Я могу контролировать использование свопа, используя команду free
. Своп опустел около 1-2MB/ сек -running free
каждые несколько секунд показывает только разницу одной цифры, и весь процесс может занять несколько минут.
Моя система довольно новая, и я только что протестировал жесткий диск, на котором хранится раздел подкачки, с помощью 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