Use optimized config for RabbitMQ cluster
authorGiulio Fidente <gfidente@redhat.com>
Mon, 11 May 2015 13:37:07 +0000 (15:37 +0200)
committerGiulio Fidente <gfidente@redhat.com>
Mon, 11 May 2015 13:37:07 +0000 (15:37 +0200)
Use some optimized configuration settings for RabbitMQ when
clustered. Data is ported from Astapor.

Change-Id: If54aff5654dbe75e68197588be12cb3995c77ec7

puppet/hieradata/controller.yaml
puppet/manifests/overcloud_controller.pp
puppet/manifests/overcloud_controller_pacemaker.pp

index 7648845..bd0d83d 100644 (file)
@@ -5,11 +5,21 @@ nova::consoleauth::enabled: true
 nova::vncproxy::enabled: true
 nova::scheduler::enabled: true
 
+# rabbitmq
 rabbitmq::delete_guest_user: false
 rabbitmq::wipe_db_on_cookie_change: true
 rabbitmq::port: '5672'
 rabbitmq::package_source: undef
 rabbitmq::repos_ensure: false
+rabbitmq_environment:
+  RABBITMQ_NODENAME: "rabbit@%{::hostname}"
+  RABBITMQ_SERVER_ERL_ARGS: '"+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"'
+rabbitmq_kernel_variables:
+  inet_dist_listen_min: '35672'
+  inet_dist_listen_max: '35672'
+rabbitmq_config_variables:
+  tcp_listen_options: '[binary, {packet, raw}, {reuseaddr, true}, {backlog, 128}, {nodelay, true}, {exit_on_close, false}, {keepalive, true}]'
+  cluster_partition_handling: 'pause_minority'
 
 mongodb::server::replset: tripleo
 
index b068b97..1b088a8 100644 (file)
@@ -161,8 +161,12 @@ if hiera('step') >= 2 {
   $rabbit_nodes = split(hiera('rabbit_node_ips'), ',')
   if count($rabbit_nodes) > 1 {
     class { '::rabbitmq':
-      config_cluster  => true,
-      cluster_nodes   => $rabbit_nodes,
+      config_cluster          => true,
+      cluster_nodes           => $rabbit_nodes,
+      tcp_keepalive           => false,
+      config_kernel_variables => hiera('rabbitmq_kernel_variables'),
+      config_variables        => hiera('rabbitmq_config_variables'),
+      environment_variables   => hiera('rabbitmq_environment'),
     }
     rabbitmq_policy { 'ha-all@/':
       pattern    => '^(?!amq\.).*',
index ba5f80a..ff1ad88 100644 (file)
@@ -223,10 +223,11 @@ if hiera('step') >= 2 {
     replace => true,
   } ->
   class { '::rabbitmq':
-    service_manage        => false,
-    environment_variables => {
-      'RABBITMQ_NODENAME' => "rabbit@$::hostname",
-    },
+    service_manage          => false,
+    tcp_keepalive           => false,
+    config_kernel_variables => hiera('rabbitmq_kernel_variables'),
+    config_variables        => hiera('rabbitmq_config_variables'),
+    environment_variables   => hiera('rabbitmq_environment'),
   }
   if $pacemaker_master {
     pacemaker::resource::ocf { 'rabbitmq':