summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--src/vm_memory_monitor.erl23
2 files changed, 21 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 9b0b483bfb..46de9c6a38 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ define PROJECT_ENV
{ssl_options, []},
{vm_memory_high_watermark, 0.4},
{vm_memory_high_watermark_paging_ratio, 0.5},
- {vm_memory_use_process_rss, true},
+ {vm_memory_calculation_strategy, rss},
{memory_monitor_interval, 2500},
{disk_free_limit, 50000000}, %% 50MB
{msg_store_index_module, rabbit_msg_store_ets_index},
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl
index 0bbca55eed..6731466c17 100644
--- a/src/vm_memory_monitor.erl
+++ b/src/vm_memory_monitor.erl
@@ -495,6 +495,23 @@ read_proc_file(IoDevice, Acc) ->
eof -> Acc
end.
+-spec get_memory_calculation_strategy() -> rss | erlang.
+get_memory_calculation_strategy() ->
+ case application:get_env(rabbit, vm_memory_calculation_strategy, rss) of
+ erlang ->
+ erlang;
+ rss ->
+ rss;
+ UnsupportedValue ->
+ rabbit_log:warning(
+ "Unsupported value '~p' for vm_memory_calculation_strategy. "
+ "Supported values: (rss|erlang). "
+ "Defaulting to 'rss'",
+ [UnsupportedValue]
+ ),
+ rss
+ end.
+
%% Memory reported by erlang:memory(total) is not supposed to
%% be equal to the total size of all pages mapped to the emulator,
@@ -502,8 +519,8 @@ read_proc_file(IoDevice, Acc) ->
%% erlang:memory(total) under-reports memory usage by around 20%
-spec get_used_memory() -> Bytes :: integer().
get_used_memory() ->
- case application:get_env(rabbit, vm_memory_use_process_rss, false) of
- true ->
+ case get_memory_calculation_strategy() of
+ rss ->
case get_system_process_resident_memory() of
{ok, MemInBytes} ->
MemInBytes;
@@ -513,7 +530,7 @@ get_used_memory() ->
[Reason]),
erlang:memory(total)
end;
- false ->
+ erlang ->
erlang:memory(total)
end.