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/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']
    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 \