From e9f0a1dceb126a16f6c5ed7b31ea6333d950d9d6 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Thu, 20 May 2021 22:27:17 +0200
Subject: [PATCH] roles/loki: Install custom OOM configuration

- When loki hits 5.5G RSS, aggressively reclaim its memory. This puts
  it under memory pressure.
- When loki hits 6G RSS, invoke the kernel OOM killer.
- When loki is under severe memory pressure, have systemd-oomd kill it.
---
 roles/loki/files/loki-override.conf | 5 +++++
 roles/loki/tasks/main.yml           | 6 ++++++
 2 files changed, 11 insertions(+)
 create mode 100644 roles/loki/files/loki-override.conf

diff --git a/roles/loki/files/loki-override.conf b/roles/loki/files/loki-override.conf
new file mode 100644
index 000000000..4f309d64f
--- /dev/null
+++ b/roles/loki/files/loki-override.conf
@@ -0,0 +1,5 @@
+[Service]
+MemoryHigh=5.5G
+MemoryMax=6G
+ManagedOOMMemoryPressure=kill
+ManagedOOMMemoryPressureLimit=60%
diff --git a/roles/loki/tasks/main.yml b/roles/loki/tasks/main.yml
index 36aa6eebc..73401462c 100644
--- a/roles/loki/tasks/main.yml
+++ b/roles/loki/tasks/main.yml
@@ -17,5 +17,11 @@
 - name: open firewall hole
   ansible.posix.firewalld: service=http zone=wireguard permanent=true state=enabled immediate=yes
 
+- name: create drop-in directory for loki
+  file: path=/etc/systemd/system/loki.service.d state=directory owner=root group=root mode=0755
+
+- name: install drop-in snippet for loki
+  copy: src=loki-override.conf dest=/etc/systemd/system/loki.service.d/override.conf owner=root group=root mode=0644
+
 - name: start and enable loki
   systemd: name=loki.service enabled=yes daemon_reload=yes state=started
-- 
GitLab