LINUX.ORG.RU

Как организовать автовыгрузку из свопа?

 


1

1

Ситуация следующая. Запускается программа А, которая занимает какую-то часть памяти. Запускается программа Б, которой не хватает оставшейся свободной памяти, поэтому программа А отправляется в своп. После закрытия программы Б, программа А остаётся в свопе и из-за этого люто тормозит. Приходится делать swapoff -a и swapon -a чтоб вернуть прежнюю отзывчивость.

Вопрос: есть ли способы настроить поведение таким образом, чтоб при освобождении памяти система автоматически доставала данные из свопа не дожидаясь момента, когда они понадобятся?

★★
Ответ на: комментарий от kirill_rrr

И если zram действительно вынужден всё сжимать, то zswap не сжимает несжимаемое.

Давно не пользовался zram-generator, тут глянул, а там прокрутили много разного, чего раньше не было или не видел (zram-generator.conf.example):

  • mem_limit (zram-resident-limit)
  • writeback (writeback-device) ##Напишите несжимаемые страницы на это устройство, поскольку нет никакой выгоды от их хранения в оперативной памяти.
  • recompress (второй параметр в compression-algorithm)

Кстати, писал, что фичу recompress`а уже давно придумал гугловский инженер, но не видел, чтоб кто-то пользовался, наверно кроме ChromeOS, для которого и разрабатывалась. Но нет, оказывается разрабы zram-generator на волне прогресса.


upd. Да, забыл написать, что на новомодный rust переписан. )

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Напишите несжимаемые страницы на это устройство, поскольку нет никакой выгоды от их хранения в оперативной памяти.

Спорное заявление. Особенно в слечае, если в качестве writeback-device используются блины. Доступ к оперативке будет на порядки быстрее. Особенно в случае случайного доступа.

u5er ★★
() автор топика
Ответ на: комментарий от krasnh

несжимаемое

По поводу mem_limit, интересовался когда-то этим параметром и в интернетах было куча постов с хвалебными эпитетами ему, а обладатели разнообразных малинок с малым количеством ram просто ‘писали кипятком’ от восторга. Типа, как они утверждали, использование mem_limit отбрасывает несжимаемые данные и они не попадают в сжатый пулл zram.
Сколько в этом правды или это в духе ОБС, и можно ли это инструментально проверить, хз.

krasnh ★★★★
()