kolla-ansible/doc/source/reference
John Garbutt 70f6f8e4c0 Reduce RabbitMQ busy waiting, lowering CPU load
On machines with many cores, we were seeing excessive CPU load on systems
that were not very busy. With the following Erlang VM argument we saw
RabbitMQ CPU usage drop from about 150% to around 20%, on a system with
40 hyperthreads.

    +S 2:2

By default RabbitMQ starts N schedulers where N is the number of CPU
cores, including hyper-threaded cores. This is fine when you assume all
your CPUs are dedicated to RabbitMQ. Its not a good idea in a typical
Kolla Ansible setup. Here we go for two scheduler threads.
More details can be found here:
https://www.rabbitmq.com/runtime.html#scheduling
and here:
https://erlang.org/doc/man/erl.html#emulator-flags

    +sbwt none

This stops busy waiting of the scheduler, for more details see:
https://www.rabbitmq.com/runtime.html#busy-waiting
Newer versions of rabbit may need additional flags:
"+sbwt none +sbwtdcpu none +sbwtdio none"
But this patch should be back portable to older versions of RabbitMQ
used in Train and Stein.

Note that information on this tuning was found by looking at data from:
rabbitmq-diagnostics runtime_thread_stats
More details on that can be found here:
https://www.rabbitmq.com/runtime.html#thread-stats

Related-Bug: #1846467

Change-Id: Iced014acee7e590c10848e73feca166f48b622dc
2021-06-07 13:18:39 +01:00
..
bare-metal Add docs and release note for CentOS 8 2020-04-24 14:52:18 +00:00
compute [doc] fix a typo 2021-04-26 17:02:51 +08:00
containers docs: Add magnum guide 2020-11-23 13:51:31 +00:00
databases Mariadb shards documentation 2021-05-17 15:36:30 +02:00
deployment-and-bootstrapping Deprecate enable_host_ntp 2021-04-27 16:03:22 +00:00
deployment-config add ulimit support for kolla_docker 2019-01-24 10:54:14 +08:00
logging-and-monitoring Remove Monasca Grafana service 2021-04-27 11:06:25 +00:00
message-queues Reduce RabbitMQ busy waiting, lowering CPU load 2021-06-07 13:18:39 +01:00
networking [doc] introduce octavia tenant management network 2021-04-19 10:44:27 +00:00
orchestration-and-nfv [Train] Fix Tacker config for the local Glance store 2019-11-25 20:13:15 +01:00
shared-services Add support to OpenID Connect Authentication flow 2021-02-15 16:57:47 -03:00
storage Merge "docs: improve external Ceph docs" 2021-02-07 15:32:38 +00:00
index.rst Allow passing arguments to RabbitMQ server 2019-10-25 11:38:45 +02:00
kollanet.png Rearrange existing documentation to fit the new standard layout 2017-09-06 17:43:56 +02:00