Additional argument to be able to customize the ERL command line
arguments. This allows the operator to specify some arguments to the
Erlang VM. By default we are now passing '+sbwt none' to set the
the erlang scheduler busy wait threshold. This threshold determines how
long schedulers are to busy wait when running out of work before going
to sleep. On most of our deployments where rabbitmq shares a node with
a lot of other services it makes little sense to busy wait when out of
work in order to improve latency as other processes are more likely to
fail to do work due to CPUs being overused by rabbit,
We have measured a three-fold reduction of CPU usage with this option
with no other observable impact.
We can observe the change in the beam.smp params:
root 346 0.0 0.0 11680 1468 ? S 18:29 0:00 \_ /bin/sh /usr/sbin/rabbitmq-server
root 367 0.0 0.0 81940 2060 ? S 18:29 0:00 \_ su rabbitmq -s /bin/sh -c /usr/lib/rabbitmq/bin/rabbitmq-server
rabbitmq 372 0.0 0.0 9672 1520 ? Ss 18:29 0:00 \_ /bin/sh /usr/lib/rabbitmq/bin/rabbitmq-server
rabbitmq 561 2.6 0.5 2365936 122036 ? Sl 18:29 1:04 \_ /usr/lib64/erlang/erts-7.3.1.4/bin/beam.smp -W w -A 64 -K true -P 1048576 -K true -sbwt none -B i -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.15/ebin -noshell -noinput -s rabbit boot -sname rabbit@controller-0 -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@controller-0.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@controller-0-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/plugins:/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.15/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@controller-0-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@controller-0"
rabbitmq 703 0.0 0.0 11588 448 ? Ss 18:29 0:00 \_ inet_gethost 4
rabbitmq 704 0.0 0.0 13712 708 ? S 18:29 0:00 \_ inet_gethost 4
Change-Id: I0ce91ed9132afe305c60036837c702c2611fa7c2