Проблемы с внезапно высоким iowait на Кластере RabbitMQ
Мы запускаем кластер RabbitMQ с 6 большими узлами c5.2 на AWS. Версия 3.6.14 на Erlang 19.1. Они запускаются в док-контейнерах и монтируют локальный том в /var/lib/rabbitmq/mnesia.
Команда запуска docker выглядит следующим образом:
docker run -d \
--name rabbitmq \
--net=host \
--dns-search=eu-west-1.compute.internal \
--ulimit nofile=65536:65536 \
--restart on-failure:5 \
-p 1883:1883 \
-p 4369:4369 \
-p 5672:5672 \
-p 15672:15672 \
-p 25672:25672 \
-e AUTOCLUSTER_TYPE=aws \
-e AWS_AUTOSCALING=true \
-e AUTOCLUSTER_CLEANUP=true \
-e CLEANUP_WARN_ONLY=false \
-e AWS_DEFAULT_REGION=eu-west-1 \
-v /mnt/storage:/var/lib/rabbitmq/mnesia \
dockerregistry/rabbitmq-autocluster:3.6.14
Часть конфигурации RabbitMQ:
[
{
rabbit,
[
{loopback_users, []},
{collect_statistics_interval, 10000},
{cluster_partition_handling, autoheal},
{delegate_count, 64},
{fhc_read_buffering, false},
{fhc_write_buffering, false},
{heartbeat, 60},
{background_gc_enabled, true},
{background_gc_target_interval, 60000},
{queue_index_embed_msgs_below, 0},
{queue_index_max_journal_entries, 8192},
{log_levels, [{connection, error},
{channel, warning}]},
{vm_memory_high_watermark, 0.8},
{auth_backends,
[
rabbit_auth_backend_ldap,
rabbit_auth_backend_internal
]
}
]
},
{
rabbitmq_mqtt,
[
{default_user, <<"**********">>},
{default_pass, <<"************">>},
{allow_anonymous, false},
{vhost, <<"/">>},
{exchange, <<"amq.topic">>},
{subscription_ttl, 1800000},
{prefetch, 10},
{ssl_listeners, []},
{tcp_listeners, [1883]},
{tcp_listen_options,
[
binary,
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true}
]
}
]
},
В прошлую пятницу вечером сообщения в очереди достигли максимума в ~25 тыс. Сообщений, когда все узлы начали испытывать массовые проблемы с iowait. Обычно iowait всегда < 5, и теперь он начал расти до> 70. Мы проверили машины, но пока не смогли найти разумного объяснения. После того, как мы повернули всю группу автоматического масштабирования на новые экземпляры, проблема исчезла. Даже в субботу, когда мы достигли той же скорости сообщений. В iotop мы часто видим процесс журналирования ext4 сверху. Однако с nvme ssds на машинах c5 мы думаем, что iowait не должен быть проблемой. Мы также проверили сеть и не нашли источника для беспокойства.
Любой вклад или советы, которые вы могли бы дать, высоко ценится? Что мы можем проверить?