LINUX.ORG.RU

2GB RAM и ряд странностей

 , ,


0

2

Приветствую гуру.

Имеется Asus TS10 с 2 Гб RAM и Manjaro на 5.10 ядре. RAM в этом «ПК» увеличить конечно же нельзя. Наблюдаю непонятные для меня вещи, может кто-то поможет?

Что уже пробовал: zram вкл/выкл, zswap вкл/выкл (оставил вкл, как и было), swap на USB 3.0 флешку, совсем без swap, swap как swap-file vm.swappiness=0…100

  1. Наблюдаю следующее: RAM забивается на 1.7 из 1.8 доступных, после чего начинает забиватся SWAP, и после того, как уже SWAP будет забит больше чем на 1.7 (а сам SWAP на 4 Гб) - начинаются дичайшие зависания всего кроме ядра (sysrq доступен в 9 из 10 случаев).

  2. Простейший способ достичь этого - работа в Firefox. Но вот ещё какая деталь:

  3. В Firefox может зависнуть любая вкладка, когда кондишн из пункта 1, и если всё попробовать разрулить - в итоге в процессах останеться висеть «неубиваемый» процесс [firefox этой вкладки]. killall -9, перезапуск ПК, swapoff -a - не помогут, останется либо sysrq+reisub либо вообще кнопка питания.

Я уже не понимаю в какую сторону копать, и что с этим делать. ДА, я понимаю что 2 Гб RAM на 2021-й год МАЛО, и я понимаю, что SWAP это очень медленно, но уж точно не понимаю «неубиваемый firefox». Помогите пожалуйста?

Firefox и хромообразные имеют обыкновение мгновенно выжирать всю доступную память если её на машине меньше 4Гб. То, что часть этой памяти может быть свопом их не интересует. Если памяти на машине много, то этим уродским поделиям, внезапно, более чем хватает меньше гигабайта чтобы резво шевелиться с десятком открытых вкладок, абсолютно тех же самых, что приводят к выжиранию всей памяти если её меньше 4Гб.

Это сделано намеренно. Те, кто пишет Firefox и Chromium, а так же любые поделия на их основе - тупые, наглые и жадные пидарасы.

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

При использовании zram отключай zswap.

При совместном использовании будет только лишняя нагрузка на процессор - сжатие в пуле zswap, потом разжатие и снова сжатие для помещения в устройство zram. Двойная нагрузка на процессор только снизит производительность. Так что выбирай либо zram, либо zswap.

hakavlad ★★★
()

Всех благодарю за ответы, прошёлся по теме, небольшой итог:

  1. Почитал об процессах в состоянии D и Z. Спс, буду знать

  2. Делал vm.overcommit_memory=2 ; vm.overcommit_ratio=100 ; vm.swappiness=100 - действительно ситуация лучше, но внезапный вылет того же Firefox из-за этого - не менее весело

  3. Уменьшил количество потоков обработки контента в FF до 1 (надеюсь, это было оно - dom.ipc.processCount)

  4. prelockd поставил, понравилось, но временно выключил, продолжая остальные тесты, см. ниже

  5. За https://linuxhint.com/top_lightweight_web_browsers_linux/ - спасибо; По-поводу https://sites.google.com/site/amdamdsoft/ - я и не против, но не на данном этапе своих умений

  6. Дальше в основном рекомендации от hakavlad:

6.1 «своп на zram, disksize=3G» - сделал, ещё удивился на предмет - 3 Гб рам своп при 2 Гб РАМ как таковой… Работает, даже можно полностью забить на все 3 Гб, в отличии от дискового свопа, где после 1.7 Гб начинался Ад

6.2 «earlyoom/nohang» - пока что пас, хотя earlyoom уже однажды ставил и в действии видел

6.3 Сейчас так: ##vm.overcommit_memory=2 ; ##vm.overcommit_ratio=100 ; vm.swappiness=80, Firefox на отвал в состояние D или Z ещё не проверял, но в целом стало лучше. Я вообще раньше уже делал zRAM на 2 Гб, не знал что можно и 3 Гб. P.S. Я различаю zRAM, zswap, swap-раздел и swap-файл, если что

6.4 «При использовании zram отключай zswap» - впринципе, я уже и так выключил дисковый своп, но отдалённо представляю, что это может продолжать влиять и на своп в ram (zram), поэтому добавил параметр ядра zswap.enabled=0

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

Не люблю заниматься некропостингом и поспешными выводами :)

zRam на 3Gb и vm.swappiness=80 принесли свои плоды. Дисковый swap отключён, только zRam. FireFox попустило, больше не вешаеться, да и действие dom.ipc.processCount=1 тоже заметил на деле. earlyoom и прочие полезности решил не ставить - на панели показывается занятость zRam swap, и я редко теперь забиваю swap до конца. Остался мелкий, больше для галочки, вопрос - нужен мне в итоге zswap.enabled=0 или он чётко нацелен на дисковый swap, и понимает когда zRam и на него не оказывает ненужное воздействие?

Благодарю всех за помощь.

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

Не должна нормальная система начинать тормозить, только потому что браузер себе решил памяти побольше скушать.

Квоты на ОЗУ настроил?

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

Можно уже просто в озу сделать свап

Упорствуя, ты начинаешь городить…

Дедусь, это Linux, а не проприетарная система типа винды или макос, так что раз пользователь решил что будет своп в ОЗУ, значит он будет вм ОЗУ.

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

И зачем они это делают?

Зачем в конце 90-х Интель привозил нам кучи бабла и свежие инженерные образцы ещё не вышедшей i740 с надписями «Not FCC approved» и «Not for sale» и требовал чтобы игруха на них тормозила?

Stanson ★★★★★
()

weclome to real world desktop linux, useless AF

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

У тебя процесс в состоянии D, а в этом состоянии нельзя убивать процессы

oom_reaper может их убивать.

Из юзерспейса можно натравливать OOM killer да D процессы для освобождения их памяти.

https://github.com/hakavlad/nohang-extra/blob/master/dsk/disk-sleep-killer

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

Если памяти не хватает, её надо добавлять

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

Решение предложено в 2010 https://lore.kernel.org/patchwork/patch/222042/

Актуальный патч здесь https://github.com/hakavlad/le9-patch

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

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

Главное приложение - гуй - иксы, wm.

Система (десктопная) должна быть управляемой и отзывчивой всегда. Всегда должна быть возможность закрыть приложение и переключаться между задачами.

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

своп в озу

Своп в сжатое блочное устройство, расположенное в ОЗУ

Pages written to these disks are compressed and stored in memory itself. These disks allow very fast I/O and compression provides good amounts of memory savings. Some of the use cases include /tmp storage, use as swap disks

https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html

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

earlyoom и прочие полезности решил не ставить

Зря. Ресурсов не ест и лишним не будет.

нужен мне в итоге zswap.enabled=0

В любом случае не повредит. Если используешь своп на zram.

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

Проследи тред выше.

«Можно уже просто в озу сделать свап»

Чел попутал zswap - zram, и начал упорствовать. А можно было бы признать — «да, слегка попутал».

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

zram, насколько я знаю, ядро не делает различия между дисковым свопом и сжатой памятью.

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

Для мобилки пойдет.

Для рабочей станции не годится. Если я правильно понял идею патча.

wandrien ★★
()

https://i.imgur.com/wvJvFDV.png opensuse tumbleweed c KDE vmware

RAM выше 1.2 (из тестовых 1.8гб) не поднимается никак. А Swap растет да. Примерно когда доходит до 1.5-1.7гб начинаются тормоза но вовсе никак не зависания. При этом в firefox открыто 15 вкладок разной тяжести (в том числе глагна реддита). Например если забит 1.7+гб swap (из 2гб) то запуск Discover, Dolphin, VLC занимает время, при этом RAM никак выше 1.2гб не поднимается, чудеса.

после закрытия firefox такая картина https://i.imgur.com/8PiCt0d.png

вобщем попробуй opensuse.

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