diff --git a/doc/settings/redis.md b/doc/settings/redis.md index d2b12ae4281477a5efa0cbcdfd16f2806c897fd1_ZG9jL3NldHRpbmdzL3JlZGlzLm1k..292a0dd8ca9d6f2cfeb7ef83744103b499b36293_ZG9jL3NldHRpbmdzL3JlZGlzLm1k 100644 --- a/doc/settings/redis.md +++ b/doc/settings/redis.md @@ -26,3 +26,16 @@ redis['port'] = 6379 redis['bind'] = '127.0.0.1' ``` + +## Tuning the TCP stack for Redis + +The following settings are to enable a more performant Redis server instance. 'tcp_timeout' is +a value set in seconds that the Redis server waits before terminating an IDLE TCP connection. +The 'tcp_keepalive' is a tunable setting in seconds to TCP ACKs to clients in absence of +communication. + +```ruby +redis['tcp_timeout'] = "60" +redis['tcp_keepalive'] = "0" +``` + diff --git a/files/gitlab-config-template/gitlab.rb.template b/files/gitlab-config-template/gitlab.rb.template index d2b12ae4281477a5efa0cbcdfd16f2806c897fd1_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU=..292a0dd8ca9d6f2cfeb7ef83744103b499b36293_ZmlsZXMvZ2l0bGFiLWNvbmZpZy10ZW1wbGF0ZS9naXRsYWIucmIudGVtcGxhdGU= 100644 --- a/files/gitlab-config-template/gitlab.rb.template +++ b/files/gitlab-config-template/gitlab.rb.template @@ -489,6 +489,8 @@ # redis['enable'] = true # redis['username'] = "gitlab-redis" +# redis['tcp_timeout'] = "60" +# redis['tcp_keepalive'] = "0" # redis['uid'] = nil # redis['gid'] = nil diff --git a/files/gitlab-cookbooks/gitlab/attributes/default.rb b/files/gitlab-cookbooks/gitlab/attributes/default.rb index d2b12ae4281477a5efa0cbcdfd16f2806c897fd1_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvYXR0cmlidXRlcy9kZWZhdWx0LnJi..292a0dd8ca9d6f2cfeb7ef83744103b499b36293_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvYXR0cmlidXRlcy9kZWZhdWx0LnJi 100644 --- a/files/gitlab-cookbooks/gitlab/attributes/default.rb +++ b/files/gitlab-cookbooks/gitlab/attributes/default.rb @@ -383,6 +383,8 @@ default['gitlab']['redis']['home'] = "/var/opt/gitlab/redis" default['gitlab']['redis']['bind'] = '127.0.0.1' default['gitlab']['redis']['port'] = 0 +default['gitlab']['redis']['tcp_timeout'] = 60 +default['gitlab']['redis']['tcp_keepalive'] = 0 default['gitlab']['redis']['password'] = nil default['gitlab']['redis']['unixsocket'] = "/var/opt/gitlab/redis/redis.socket" default['gitlab']['redis']['unixsocketperm'] = "777" diff --git a/files/gitlab-cookbooks/gitlab/templates/default/redis.conf.erb b/files/gitlab-cookbooks/gitlab/templates/default/redis.conf.erb index d2b12ae4281477a5efa0cbcdfd16f2806c897fd1_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvdGVtcGxhdGVzL2RlZmF1bHQvcmVkaXMuY29uZi5lcmI=..292a0dd8ca9d6f2cfeb7ef83744103b499b36293_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9naXRsYWIvdGVtcGxhdGVzL2RlZmF1bHQvcmVkaXMuY29uZi5lcmI= 100644 --- a/files/gitlab-cookbooks/gitlab/templates/default/redis.conf.erb +++ b/files/gitlab-cookbooks/gitlab/templates/default/redis.conf.erb @@ -106,7 +106,7 @@ unixsocketperm <%= @unixsocketperm %> # Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 +timeout <%= @tcp_timeout %> # TCP keepalive. # @@ -122,7 +122,7 @@ # On other kernels the period depends on the kernel configuration. # # A reasonable value for this option is 60 seconds. -tcp-keepalive 0 +tcp-keepalive <%= @tcp_keepalive %> ################################# GENERAL #####################################