From 962ce364f88eacf20507ba646c94a96d5c782001 Mon Sep 17 00:00:00 2001 From: John Eckersberg Date: Tue, 12 Sep 2017 17:19:56 -0400 Subject: [PATCH] RabbitMQ should use net_ticktime We no longer need to force low-level TCP timeouts for dead client detection, but should continue tuning the timeout for dead peer detection between cluster nodes. Using the erlang net_ticktime option is preferrable here. Closes-Bug: 1717006 Change-Id: Ibd29c03bd69818d79396c379a2d638c018a04b82 --- puppet/services/rabbitmq.yaml | 9 ++++++++- .../notes/rabbit-net_ticktime-519f904e52218c2d.yaml | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/rabbit-net_ticktime-519f904e52218c2d.yaml diff --git a/puppet/services/rabbitmq.yaml b/puppet/services/rabbitmq.yaml index a1a602019a..1cd3ad3620 100644 --- a/puppet/services/rabbitmq.yaml +++ b/puppet/services/rabbitmq.yaml @@ -57,6 +57,12 @@ parameters: overridden to CEIL(N/2) where N is the number of nodes running rabbitmq. default: -1 type: number + RabbitNetTickTime: + description: + The number of seconds to configure the value of the erlang + net_ticktime kernel variable. + default: 15 + type: number MonitoringSubscriptionRabbitmq: default: 'overcloud-rabbitmq' type: string @@ -97,11 +103,12 @@ outputs: NODE_PORT: '' NODE_IP_ADDRESS: '' RABBITMQ_NODENAME: "rabbit@%{::hostname}" - RABBITMQ_SERVER_ERL_ARGS: '"+K true +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<15000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<15000:64/native>>}]"' + RABBITMQ_SERVER_ERL_ARGS: '"+K true +P 1048576 -kernel inet_default_connect_options [{nodelay,true}]"' 'export ERL_EPMD_ADDRESS': "%{hiera('rabbitmq::interface')}" rabbitmq_kernel_variables: inet_dist_listen_min: '25672' inet_dist_listen_max: '25672' + net_ticktime: {get_param: RabbitNetTickTime} rabbitmq_config_variables: cluster_partition_handling: 'pause_minority' queue_master_locator: '<<"min-masters">>' diff --git a/releasenotes/notes/rabbit-net_ticktime-519f904e52218c2d.yaml b/releasenotes/notes/rabbit-net_ticktime-519f904e52218c2d.yaml new file mode 100644 index 0000000000..a5eed79156 --- /dev/null +++ b/releasenotes/notes/rabbit-net_ticktime-519f904e52218c2d.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + A new parameter, RabbitNetTickTime, allows tuning the Erlang + net_ticktime parameter for rabbitmq-server. The default value is + 15 seconds. This replaces previous tunings in the RabbitMQ + environment file which set socket options forcing + TCP_USER_TIMEOUT to 15 seconds.