Утечка памяти в Linux?

Использую Debian testing с KDE в качестве основной системы и столкнулся с такой проблемой. Запускаю вроде бы совсем немного: Firefox (30-40 вкладок), vscode(3-4 окна), docker и иногда Discord. В компьютере 16 гб оперативной памяти, но ее не хватает, так как где-то утечка памяти, но где именно, понять не могу. Симптомы такие: при активном серфинге в интернете и просто долгой работы на компьютере, заканчивается оперативная память, то что происходит далее зависит от настроек: если включен swap, то начинает съедаться он и система начинает адски торомзит, так как (согласно iotop) начинается бешенное чтение/запись на диск, индикатор загруженности диска горит вообще не переставая, работать становится практически невозможно, приходится перезагружаться. Если же swap отключен то после того как кончится оперативка компьютер просто намертво зависает и далее либо срабатывает oom-killer либо приходится аварийно перезагружаться. Я заметил что оперативку больше всего съедают firefox или дискорд, а если долго работать, то после их закрытия больше других программ не остается и видно что около 6 гб съедают kwin и plasmashell. Еще очень похоже, что firefox не освобождает память, так как после закрытия большого числа вкладок объем используемой памяти не меняется и освобождается только после закрытия.

В тоже время на этом же компьютере на другом диске (1 ТБ HDD) стоит Windows 10 на которой таких проблем нет. Там открыто (извините за подробности): Chrome (70+ вкладок), LabView, vscode, Telegram, Discord, Garry's mod и еще куча мелких программ и это все съедает максимум 10-11 гб оперативки и редко когда больше; после закрытия все нормально освобождается, перезагружаться практически не приходилось (разве что после обновлений). Единственное, что там HDD и поэтому иногда подтормаживает, но работать можно.

Конфигурация компьютера

  • Процессор: Intel Core i9 9900k
  • Материнская плата: Gigabyte Z390 Gaming x
  • SSD: Samsung evo plus 250 ГБ, на нем стоит Linux
  • Оперативная память Patriot 2x8 Гб
  • HDD Seagate barracuda 1 ТБ, большая часть используется под /var, и /home поровну, еще 30гб под swap
  • Гибридный HDD Seagate 1 ТБ, на нем стоит Windows

  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 4
DamianLewis
@DamianLewis
Раздолбай/Нуб
Мой ответ не совсем решения вопроса, но я бы для начала сделал так, чтобы swap задействовался только при загруженности ОЗУ на 95%. По умолчанию swap используется когда ОЗУ забито на 60%. В вашем случае это получается когда 9гб забито, подключается swap и начинаются тормоза. Для начала проверьте, какое значение имеет swap.
Введите в терминале sudo sysctl vm.swappiness
Обычно он покажет значение 60

Чтобы swap задействовался при занятости ОЗУ 95%, надо ввести:
sudo sysctl -w vm.swappiness=5

Но он дает эффект лишь до перезагрузки. Чтобы значение оставалось постоянным, надо занести данные в /etc/sysctl.conf
Так как у вас kde и текст.редактор kate, введите в терминале: sudo kate /etc/sysctl.conf
Ну и занести туда под конец vm.swappiness = 5
Если там уже есть параметр vm.swappiness, просто поменяйте значение на 5
Именно через пробел после vm.swappiness и пробел после =

Во вторых можно начать использование zram. Читал где-то, что в Ubuntu-based дистрибутивах можно просто установить zram и оставить настройки по-умолчанию. Т.е. настраивать ничего не надо. Именно так и сделал. Вводим sudo apt install zram-config
Теперь надо перезагрузить систему. На этом всё.

При использовании виртуальных машин очень выручили 2 вот этих изменения в системе.
Ответ написан
BorLaze
@BorLaze
Java developer
Использую Debian testing

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

Поставь stable - я более чем уверен, что все придет в норму.
Ответ написан
dyuriev
@dyuriev
A posteriori
Сравнение с Windows не корректно по куче причин, но главная из них - в Windows 10 System and compressed memory активировано по умолчанию

Чтобы ваше сравнение было более менее объективно - воткните swap в zram

sudo apt install zram-tools
затем поправьте /etc/defaults/zramswap (задайте размер раздела в процентах или мегабайтах, гляньте комменты в файле, все поймете, 50% для десктопа вполне стабильно себя ведет)
и рестартаните службу
sudo systemctl restart zramswap

если кратко описать, что произойдет - в оперативной памяти появится блочное устройство, данные при записи(чтении) в которое будут сжиматься(разжиматься) в реалтайме, сжатие по дефолту lz4, что достаточно быстро

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

PS: и поставьте htop и там отлавливайте что у вас оперативу утилизирует
Ответ написан
Viktor_T2
@Viktor_T2
python developer
Хочу вас удивить ребята, AMD Athlon 64 X2 Dual Core, 4 гига оперативки, диски - HDD.
Это жуткое старьё. Пользуюсь каждый день. Firefox 150 вкладок - даже не чихает,
300-400 вкладок запускается с ощутимыми тормозами. VS-Code запускается, работает сносно.
Телега вобще без проблем. Юзал слак - приложение, работает тормозно, но пользоватся можно.
Линукс debian, opensuse, рабочий стол xfce.
Ответ на твой вопрос - что-то у тебя течет, сто пудов, ищи что течет.
Своп в линуксе хреновый, до этого лучше не доводить.
16 гигов это вполне достаточно памяти для десктопа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы