diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2014-01-27 15:05:01 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2014-01-27 15:05:01 +0000 |
commit | f728f23ce9313e6457d8a59a5f9a9e85c4479278 (patch) | |
tree | a4cce087a2b608eba9ae667d59229fbdab2f9c27 /src/rabbit_queue_consumers.erl | |
parent | fe13a2eb7718ce7f9ddb34f6b9fe59b8b01d23fe (diff) | |
download | rabbitmq-server-f728f23ce9313e6457d8a59a5f9a9e85c4479278.tar.gz |
Try to get the weighting factor right.
Diffstat (limited to 'src/rabbit_queue_consumers.erl')
-rw-r--r-- | src/rabbit_queue_consumers.erl | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/rabbit_queue_consumers.erl b/src/rabbit_queue_consumers.erl index bea7e0d0..c9540da8 100644 --- a/src/rabbit_queue_consumers.erl +++ b/src/rabbit_queue_consumers.erl @@ -27,6 +27,9 @@ -define(UNSENT_MESSAGE_LIMIT, 200). +%% Utilisation average calculations are all in μs. +-define(USE_AVG_HALF_LIFE, 1000000.0). + -record(state, {consumers, use}). -record(consumer, {tag, ack_required, args}). @@ -430,11 +433,6 @@ update_use({inactive, Since, Active, Avg}, active) -> use_avg(Active, Inactive, Avg) -> Time = Inactive + Active, - Ratio = Active / Time, - Weight = erlang:min(1, Time / 1000000), - case Avg of - undefined -> Ratio; - _ -> Ratio * Weight + Avg * (1 - Weight) - end. + rabbit_misc:moving_average(Time, ?USE_AVG_HALF_LIFE, Active / Time, Avg). now_micros() -> timer:now_diff(now(), {0,0,0}). |