From 1c954675821bdd1649170e30cd451fa1b8aca225 Mon Sep 17 00:00:00 2001 From: 12ww1160 Date: Wed, 3 Dec 2025 12:24:44 +0100 Subject: [PATCH 1/2] 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 \ From e4a95e86408d3f2e7c56328d16f3adb66dd034ae Mon Sep 17 00:00:00 2001 From: Jenkins Server Date: Wed, 3 Dec 2025 12:26:07 +0100 Subject: [PATCH 2/2] Recommit for updates in build 37 --- .../prometheus_cd_3A_3Aparams.html | 118 ++++++++++++++++-- 1 file changed, 111 insertions(+), 7 deletions(-) diff --git a/doc/puppet_classes/prometheus_cd_3A_3Aparams.html b/doc/puppet_classes/prometheus_cd_3A_3Aparams.html index 28973b8..9ca1221 100644 --- a/doc/puppet_classes/prometheus_cd_3A_3Aparams.html +++ b/doc/puppet_classes/prometheus_cd_3A_3Aparams.html @@ -376,6 +376,96 @@ —

WAL segment size

+
+ + + +
  • + + ps_max_mem + + + (String) + + + (defaults to: '6G') + + + — +
    +

    hard memory ceiling

    +
    + +
  • + +
  • + + ps_high_mem + + + (String) + + + (defaults to: '5G') + + + — +
    +

    soft limit to make kernel reclaim earlier

    +
    + +
  • + +
  • + + ps_swap_mem + + + (String) + + + (defaults to: '4G') + + + — +
    +

    allow swap, but limit it

    +
    + +
  • + +
  • + + ps_oom_score + + + (String) + + + (defaults to: '500') + + + — +
    +

    OOM killer choosing prometheus

    +
    + +
  • + +
  • + + ps_max_procs + + + (String) + + + (defaults to: '1') + + + — +
    +

    reduce parallel WAL replay workers

  • @@ -391,11 +481,6 @@
     
     
    -21
    -22
    -23
    -24
    -25
     26
     27
     28
    @@ -440,10 +525,22 @@
     67
     68
     69
    -70
    +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 -
    # File 'manifests/params.pp', line 21
    +        
    # File 'manifests/params.pp', line 26
     
     class prometheus_cd::params (
     
    @@ -472,6 +569,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']