Disable background GC by default; bump credit flow defaults

Quite a bit of evidence of different kinds of workloads suggest
that background GC does not contribute meaningfully to reducing
node RAM usage on most of them. It does, however, on each run
produce a massive spike in VM and CPU context switches,
causing latency spikes.

Some users report that running without background GC cuts
their latency to a half or even a third.

Multi-hour stress tests that max out all node CPU cores
suggest that our current credit_flow default can still be bumped
safely, reducing the amount of time publishers are throttled
and making publisher latency and node's observed message throughput
more predictable.
This commit is contained in:
Michael Klishin 2017-02-05 14:41:40 +03:00
parent 3c32d7ed3e
commit 2f3fb8023b
No known key found for this signature in database
GPG Key ID: D1A1B77724CE35D5
1 changed files with 2 additions and 2 deletions

View File

@ -94,7 +94,7 @@ define PROJECT_ENV
{msg_store_io_batch_size, 2048},
%% see rabbitmq-server#143
%% and rabbitmq-server#949
{credit_flow_default_credit, {200, 100}},
{credit_flow_default_credit, {400, 200}},
%% see rabbitmq-server#248
%% and rabbitmq-server#667
{channel_operation_timeout, 15000},
@ -106,7 +106,7 @@ define PROJECT_ENV
%% rabbitmq-server-973
{queue_explicit_gc_run_operation_threshold, 1000},
{lazy_queue_explicit_gc_run_operation_threshold, 1000},
{background_gc_enabled, true},
{background_gc_enabled, false},
{background_gc_target_interval, 60000}
]
endef