From 1c954675821bdd1649170e30cd451fa1b8aca225 Mon Sep 17 00:00:00 2001 From: 12ww1160 Date: Wed, 3 Dec 2025 12:24:44 +0100 Subject: [PATCH] OP#179 add service control units for memory consumption --- .gitignore | 1 + .vscode/settings.json | 2 ++ manifests/params.pp | 12 ++++++++++++ templates/override.conf.erb | 6 ++++++ 4 files changed, 21 insertions(+) diff --git a/.gitignore b/.gitignore index a356406..cfae693 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ Gemfile.lock FileList .scannerwork +.vscode \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 403056c..c808a20 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,8 @@ { "cSpell.words": [ "changeme", + "GOMAXPROCS", + "procs", "reqpackage", "rpms", "sslcacert", diff --git a/manifests/params.pp b/manifests/params.pp index bfcd81e..7d12ac8 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -17,6 +17,11 @@ # @param [String] ps_retention_time tsdb retention time # @param [String] ps_retention_size tsdb retention size # @param [String] ps_wal_seg_size WAL segment size +# @param [String] ps_max_mem hard memory ceiling +# @param [String] ps_high_mem soft limit to make kernel reclaim earlier +# @param [String] ps_swap_mem allow swap, but limit it +# @param [String] ps_oom_score OOM killer choosing prometheus +# @param [String] ps_max_procs reduce parallel WAL replay workers ############################################################################## class prometheus_cd::params ( @@ -45,6 +50,13 @@ class prometheus_cd::params ( String $ps_retention_size = '20GB', String $ps_wal_seg_size = '50MB', + # service + String $ps_max_mem = '6G', + String $ps_high_mem = '5G', + String $ps_swap_mem = '4G', + String $ps_oom_score = '500', + String $ps_max_procs = '1', + ) { # defaults $fqdn = $facts['networking']['fqdn'] diff --git a/templates/override.conf.erb b/templates/override.conf.erb index 3d13498..99c2faf 100644 --- a/templates/override.conf.erb +++ b/templates/override.conf.erb @@ -2,6 +2,12 @@ ##### File created by Puppet - manual changes will be overwritten ##### ############################################################################### [Service] +MemoryMax=<%= @ps_max_mem %> +MemoryHigh=<%= @ps_high_mem %> +MemorySwapMax=<%= @ps_swap_mem %> +OOMScoreAdjust=<%= @ps_oom_score %> +Environment="GOMAXPROCS=<%= @ps_max_procs %>" + ExecStart= ExecStart=/usr/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \