LINUX.ORG.RU

Чёт не понять с этим zswap... сколько ему памяти, чтобы он не пользовался хардом, zram..?

 


0

1

Привет! Расскажу вам простенькую историю линуксоида со своими маленькими проблемами.

Жил я раньше с zram и горя не знал. Точнее, знал, например, про страшный 12309 и иногда испытывал, но к оперативки не имело ни какого отношения.

У меня 8 гб, иногда пускаю виртуалки. Сразу скажу, что swappiness стоит 10, т.е. зрам используется при >90% загруженности РАМ.

С zram вроде бы всё хорошо, однако, как я здесь прочитал и убедился — после того, как zram использован, он остаётся висеть _мёртвым грузом_. Даже если освободить оперативку, своп по прежнему существует, как я понял, для нужд «кэширования», но это кэширование было рассчитано за хард. Плюс, прочитал, чтоб виртуалки не тормозили, лучше zswap. ОТ zram Я ИЗБАВИЛСЯ!

Типа работает так, как я понял: когда система ПОСЫЛАЕТ запрос на использование swap файла, он пишется в оперативную память, но ЕСЛИ выходит за пределы кэша в РАМ, то содержимое сбрасывается на диск.

Попутно, я включил компрессию lz4 как более быструю.

С помощью какогото скрипта из минта создал файл подкачки на 2гб.

И теперь наблюдается такая трабла: запускаю, например, 2 виртуалки, одну ставлю на паузу, запускаю игрушку. Игрушка тормозит, подлагивает, swap показывается, что используется. Также тормозит и подлагивает виртуалка активная.

ЧЯДНТ? swappiness маленький, или swap большой и 12309 выходит, или zswap плохой какой-то? Честно, раньше 2 виртуалки с игрухой в zram не пускал, вроде, а может и пускал, но не наблюдал.

Вот я думаю: что будет, если предельно уменьшить размер своп-файла — скажем, до ~1 мбайта - будет ли работать zswap как раньше? Или не стоит стыдиться того, что zram свопфайл в памяти со временем растёт?



Последнее исправление: Utrinos (всего исправлений: 1)

после того, как zram использован, он остаётся висеть _мёртвым грузом_

swapon -d /dev/zram0 или discard в fstab

Radjah ★★★★★
()

Убери зрам вообще — это убожище ещё то. И грепни dmesg на предмет zbud на всякий. Кстати, lz4 я думаю не имеет преимуществ перед lzo так-то. Может даже больше профита от deflate будет, чем от него, хотя зависит, конечно же, от юзкейса.

своп по прежнему существует, как я понял, для нужд «кэширования»

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

зы у меня swapiness 90 и своп практически не используется, несмотря на это (скорее всего нули хорошо сжимаются)

anonymous
()

Тормозит потому что swappiness маленький (да, советчики уменьшать его врут или расчитывают что у тебя >16гигов и запускается только браузер). Ещё не помешает в параметры ядра zswap.compressor=lz4 zswap.enabled=y zswap.max_pool_percent=95 zswap.zpool=zbud чтоб точно всё хорошо было.

anonymous
()
Ответ на: комментарий от anonymous

Зрам-то я убрал, но почему убожище-то? Судя по всему, убожище — это насиловать системный хард обменом данными → иметь физический swap в принципе.

Utrinos
() автор топика
Ответ на: комментарий от anonymous

zswap.compressor=lz4 zswap.enabled=y zswap.max_pool_percent=95 zswap.zpool=zbud чтоб точно всё хорошо было.

Всё почти так, только без збуда, но он используется

Utrinos
() автор топика
Ответ на: комментарий от Deleted

А уменьшение памяти под физический своп даст что-нибудь? Мне он нахрен не упёрся никуда. Просто я не знаю, будет ли zswap работать в таком случае

Utrinos
() автор топика
Ответ на: комментарий от Deleted

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

anonymous
()

Сразу скажу, что swappiness стоит 10, т.е. зрам используется при >90% загруженности РАМ.

ЕМНИП, swapinness работает не так. Чем оно больше, тем больше ядро скидывает в свап неиспользуемые страницы, даже если есть свободная RAM. Лучше подкрути vm.min_free_kbytes, если тебе нужно именно это.
Совет выше про swapon -d выглядит здраво.

anonymous
()

Судя по каше из первопоста, вы не понимаете что такое swappiness, как и какие страницы могут оказаться в свопе и т.д.

Тут надо идти за дополнительной планкой памяти.

А что касается бессмысленного и беспощадного твикинга, то из всего перечисленного, вам можно только zswap с дефолтными настройками.
Он как раз лучше всего подходит для тех, кто не понимает, что вообще происходит.

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

Я хочу от свопа на ноутбучном харде вообще отказаться. В целом, я могу укладываться в 8 гб оперативной памяти и не считаю что это так уж мало, но всякое бывает. И хочу, чтобы раз уж замедлялась производительность от нехватки и не вставала раком, то пусть лучше в своп в оперативке уходит.

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

Я хочу от свопа на ноутбучном харде вообще отказаться.

За исключением каких-то ну очень особенных юзкейсов, вроде реалтайма, это очень плохая идея.
Особенно когда памяти уже нехватает.

Ещё раз проитерирую рекомендацию «больше оперативки, и zswap».
И, в вашем случае, если уж трогать swappiness, то сразу в район ста. Ибо виртуалки, как я подозреваю, это овердофига анонимных страниц, со всеми вытекающими.

aidaho ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.