| Summary: | systemd-oomd-defaults не настраивает мониторинг user.slice на системном уровне | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
| Component: | systemd-oomd-defaults | Assignee: | Alexey Shabalin <shaba> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | arseny, iv, shaba |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
> аналогично тому, как это делает Fedora
Но fedora так не делает, не создает файл /usr/lib/systemd/system/user.slice.d/10-oomd-per-slice-defaults.conf.
У нас сделано точно так же как в fedora.
$rpm -ql systemd-oomd-defaults
/usr/lib/systemd/oomd.conf.d/10-oomd-defaults.conf
/usr/lib/systemd/system/system.slice.d/10-oomd-per-slice-defaults.conf
/usr/lib/systemd/user/slice.d/10-oomd-per-slice-defaults.conf
|
systemd-oomd-defaults не настраивает мониторинг user.slice на системном уровне Пакет systemd-oomd-defaults содержит drop-in конфиги для: - /usr/lib/systemd/system/system.slice.d/10-oomd-per-slice-defaults.conf — системные сервисы - /usr/lib/systemd/user/slice.d/10-oomd-per-slice-defaults.conf — слайсы внутри user-manager (systemd --user) Но отсутствует конфиг в /usr/lib/systemd/system/user.slice.d/, из-за чего user.slice на системном уровне не мониторится systemd-oomd. В результате oomctl dump показывает только /system.slice в разделе "Memory Pressure Monitored CGroups", а пользовательские процессы (браузер, IDE и т.д.) остаются без защиты — именно те, которые чаще всего и вызывают OOM. Также можно увидеть отсутствие настройки через systemctl show user.slice: там ManagedOOMMemoryPressure=auto ManagedOOMMemoryPressureLimit=0 (т.е. не настроено). Нужно добавить в пакет файл /usr/lib/systemd/system/user.slice.d/10-oomd-per-slice-defaults.conf: [Slice] ManagedOOMMemoryPressure=kill ManagedOOMMemoryPressureLimit=80% аналогично тому, как это делает Fedora: https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/10-oomd-per-slice-defaults.conf После добавления этого файла и systemctl daemon-reload + рестарта systemd-oomd, oomctl dump начинает показывать полную иерархию: /user.slice, user@1000.service, app.slice, session.slice и т.д.