06b66a8094
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
9 lines
452 B
YAML
9 lines
452 B
YAML
---
|
|
other:
|
|
- |
|
|
A new parameter called 'RabbitAdditionalErlArgs' that specifies additional arguments
|
|
to the Erlang VM has been added. It now defaults to "'+sbwt none'" (http://erlang.org/doc/man/erl.html#+sbwt)
|
|
This threshold determines how long schedulers are to busy wait when running out of work before going to sleep.
|
|
By setting it to none we let the erlang threads go to sleep right away when they do not have any work to
|
|
do.
|