From 8b43bace78118b0bbc455c0eceea54aad1f56c9f Mon Sep 17 00:00:00 2001 From: Vincent Tamet Date: Tue, 22 Oct 2019 14:31:18 +0200 Subject: [PATCH 1/5] systemd LimitNOFILE - sysctl net.core.somaxconn --- manifests/server.pp | 7 +++++++ templates/systemd/redis.service.erb | 1 + 2 files changed, 8 insertions(+) diff --git a/manifests/server.pp b/manifests/server.pp index b82c3a9..ad5db7d 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -171,6 +171,8 @@ $cluster_require_full_coverage = true, $protected_mode = undef, $include = [], + $redis_maxopenfiles = 12288, + $redis_somaxconn = 1024, ) { include redis::install @@ -297,4 +299,9 @@ require => File[$service_file], subscribe => File[$conf_file], } + exec { "sysctl -w net.core.somaxconn=${redis_somaxconn}": + path => '/usr/bin:/usr/sbin:/bin', + provider => shell, + onlyif => "test `sysctl -n net.core.somaxconn` -lt ${redis_somaxconn}", + } } diff --git a/templates/systemd/redis.service.erb b/templates/systemd/redis.service.erb index 006a06c..2ff5eef 100644 --- a/templates/systemd/redis.service.erb +++ b/templates/systemd/redis.service.erb @@ -16,6 +16,7 @@ ExecStart=/usr/bin/redis-server <%= @redis_run_dir %>/<%= @conf_file_name %> --d ExecStop=/usr/bin/redis-cli -p <%= @redis_port %> shutdown User=<%= @redis_user or 'root' %> Group=<%= @redis_group or 'root' %> +LimitNOFILE= <%= @redis_maxopenfiles %> [Install] WantedBy=multi-user.target From 865bb3bbc362fb8f77049fc4048799fb11ce07f3 Mon Sep 17 00:00:00 2001 From: Vincent Tamet Date: Wed, 23 Oct 2019 18:49:00 +0200 Subject: [PATCH 2/5] systemd sysctl order changed --- manifests/server.pp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index ad5db7d..5dd82bb 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -290,18 +290,20 @@ } } + exec { 'sysctl_redis': + command => "sysctl -w net.core.somaxconn=${redis_somaxconn}", + path => '/usr/bin:/usr/sbin:/bin', + provider => shell, + onlyif => "test `sysctl -n net.core.somaxconn` -lt ${redis_somaxconn}", + } + # manage redis service service { "redis-server_${redis_name}": ensure => $running, enable => $enabled, hasstatus => true, hasrestart => true, - require => File[$service_file], + require => [File[$service_file],Exec['sysctl_redis']], subscribe => File[$conf_file], } - exec { "sysctl -w net.core.somaxconn=${redis_somaxconn}": - path => '/usr/bin:/usr/sbin:/bin', - provider => shell, - onlyif => "test `sysctl -n net.core.somaxconn` -lt ${redis_somaxconn}", - } } From 394ef47ea9a4285b3cba2983d408bb460c64c134 Mon Sep 17 00:00:00 2001 From: Vincent Tamet Date: Wed, 23 Oct 2019 19:04:57 +0200 Subject: [PATCH 3/5] systemd sysctl order with subscription --- manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/server.pp b/manifests/server.pp index 5dd82bb..b3aee41 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -304,6 +304,6 @@ hasstatus => true, hasrestart => true, require => [File[$service_file],Exec['sysctl_redis']], - subscribe => File[$conf_file], + subscribe => [File[$conf_file],Exec['sysctl_redis']], } } From c1f618bc1c2e5c4c985744c360c8a288ce82e06d Mon Sep 17 00:00:00 2001 From: Vincent Tamet Date: Thu, 24 Oct 2019 14:38:40 +0200 Subject: [PATCH 4/5] systemd sysctl add in README --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index c48f313..a1f6e02 100644 --- a/README.md +++ b/README.md @@ -420,6 +420,14 @@ Default: empty Configure logrotate rules for redis server. Default: true +##### `redis_maxopenfiles` + +Systemd LimitNOFILE change to allow redis change maxclients. Default: 12288 + +##### `redis_somaxconn` + +Sysctl change to allow redis change TCP backlog. Default: 1024 + ##### High Availability Options ##### `slaveof` From cf93a7cae51fe72a4616f248a75cb01d0ad3050d Mon Sep 17 00:00:00 2001 From: Vincent Tamet Date: Fri, 25 Oct 2019 12:27:18 +0200 Subject: [PATCH 5/5] templates/systemd/redis.service.erb remove space --- templates/systemd/redis.service.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/systemd/redis.service.erb b/templates/systemd/redis.service.erb index 2ff5eef..c09d0c3 100644 --- a/templates/systemd/redis.service.erb +++ b/templates/systemd/redis.service.erb @@ -16,7 +16,7 @@ ExecStart=/usr/bin/redis-server <%= @redis_run_dir %>/<%= @conf_file_name %> --d ExecStop=/usr/bin/redis-cli -p <%= @redis_port %> shutdown User=<%= @redis_user or 'root' %> Group=<%= @redis_group or 'root' %> -LimitNOFILE= <%= @redis_maxopenfiles %> +LimitNOFILE=<%= @redis_maxopenfiles %> [Install] WantedBy=multi-user.target