Когда заканчивается ОЗУ система совершенно неотзывчива

Added by maxi m 12 months ago

Добрый день!
Когда ОЗУ полностью исчерпана, то графическая среда становится практически полностью неотзывчивой (тормозит мышка, невозможно закрыть ни одно приложение и т.п.).
Установлена CLD 17.12 x86_64 со всеми обновлениями на систему с 4Гб ОЗУ. Установлена на SSD, также на SSD выделен swap 8Гб.
Пробовал отключать swap, ситуация такая же (хотя, как я понимаю, система должна автоматом "убивать" приложения для освобождения памяти).
Тема наверняка уже не новая, но может кто-то нашел более-менее вменяемое решение. Может можно что-то подкрутить, чтобы такой ситуации не возникало (хотя бы автоостановка приложений работала автоматически). Пока приходится пользоваться Alt+SysRq+F. Но обычным пользователям то этого не объяснить...


Replies (3)

RE: Когда заканчивается ОЗУ система совершенно неотзывчива - Added by Alexander Tratsevskiy 12 months ago

В параметрах ядра /boot/grub/grub.cfg прописан zswap ("zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=30"). Он позволяет подключать сжатый своп из ОЗУ. Возможно переполнение памяти приводит к подвисанию. Так же можно попробовать увеличить его значение, возможно после этого памяти начнёт хватать.

Другой вариант поставить менее прожорливую систему - CLDX с рабочим столом Xfce.

RE: Когда заканчивается ОЗУ система совершенно неотзывчива - Added by maxi m 11 months ago

Спасибо за ответ!
Наконец-то вновь добрались руки до этой проблемы.
Да, вся беда была в zswap, при его отключении система убивает процессы исправно. Уже стало получше =)
Но теперь появилась новая проблема. Система по какой-то причине практически не использует swap (используется около 20-80мб). И когда ОЗУ заканчивается, то некоторые процессы просто убиваются без попыток "выкинуть" часть памяти в своп. Что нужно подкрутить, чтобы такой ситуации не возникало?
Текущие параметры такие:
vm.overcommit_kbytes = 0
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.swappiness = 60
vm.oom_dump_tasks = 1
vm.oom_kill_allocating_task = 0
vm.panic_on_oom = 0

RE: Когда заканчивается ОЗУ система совершенно неотзывчива - Added by Фёдор Ратиев 11 months ago

Вроде vm.swappiness по такой формуле считается:
100 - vm.swappiness = % от физ+своп памяти
ещё можно vm.vfs_cache_pressure уменьшить немного, тогда активнее выгружать в swap будет.

(1-3/3)

Thank you!