diff options
author | Emile Joubert <emile@rabbitmq.com> | 2011-10-27 11:48:01 +0100 |
---|---|---|
committer | Emile Joubert <emile@rabbitmq.com> | 2011-10-27 11:48:01 +0100 |
commit | 13bc32fa5742635d772f70efdbbe9104450fe584 (patch) | |
tree | 1b1295bb3758fdda65bfa60b75830492aed5e97c | |
parent | c24c1f5166efd526116f8713759c1bb50a89c180 (diff) | |
download | rabbitmq-server-13bc32fa5742635d772f70efdbbe9104450fe584.tar.gz |
Change the meaning of vm_memory_high_watermark = 0.0
Setting vm_memory_high_watermark to zero disabled memory monitoring.
Now we treat 0.0 as a normal percentage, which guarantees that the
memory alarm will always be triggered, making it impossible to publish.
-rw-r--r-- | src/rabbit_alarm.erl | 6 | ||||
-rw-r--r-- | src/rabbit_memory_monitor.erl | 21 |
2 files changed, 14 insertions, 13 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index d38ecb91..fd03ca85 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -45,11 +45,7 @@ start() -> ok = alarm_handler:add_alarm_handler(?MODULE, []), {ok, MemoryWatermark} = application:get_env(vm_memory_high_watermark), - ok = case MemoryWatermark == 0 of - true -> ok; - false -> rabbit_sup:start_restartable_child(vm_memory_monitor, - [MemoryWatermark]) - end, + rabbit_sup:start_restartable_child(vm_memory_monitor, [MemoryWatermark]), ok. stop() -> diff --git a/src/rabbit_memory_monitor.erl b/src/rabbit_memory_monitor.erl index 3deb9580..9cfc1583 100644 --- a/src/rabbit_memory_monitor.erl +++ b/src/rabbit_memory_monitor.erl @@ -211,17 +211,22 @@ internal_update(State = #state { queue_durations = Durations, queue_duration_sum = Sum, queue_duration_count = Count }) -> MemoryLimit = ?MEMORY_LIMIT_SCALING * vm_memory_monitor:get_memory_limit(), - MemoryRatio = erlang:memory(total) / MemoryLimit, DesiredDurationAvg1 = - case MemoryRatio < ?LIMIT_THRESHOLD orelse Count == 0 of + case MemoryLimit > 0.0 of true -> - infinity; + MemoryRatio = erlang:memory(total) / MemoryLimit, + case MemoryRatio < ?LIMIT_THRESHOLD orelse Count == 0 of + true -> + infinity; + false -> + Sum1 = case MemoryRatio < ?SUM_INC_THRESHOLD of + true -> Sum + ?SUM_INC_AMOUNT; + false -> Sum + end, + (Sum1 / Count) / MemoryRatio + end; false -> - Sum1 = case MemoryRatio < ?SUM_INC_THRESHOLD of - true -> Sum + ?SUM_INC_AMOUNT; - false -> Sum - end, - (Sum1 / Count) / MemoryRatio + 0.0 end, State1 = State #state { desired_duration = DesiredDurationAvg1 }, |