diff options
Diffstat (limited to 'src')
| -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 d38ecb91fe..fd03ca85b3 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 3deb9580e9..9cfc158327 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 }, |
