summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/file_handle_cache.erl2
-rw-r--r--src/rabbit_memory_monitor.erl14
-rw-r--r--src/vm_memory_monitor.erl17
3 files changed, 19 insertions, 14 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl
index 5a03bd93cb..d4f83be513 100644
--- a/src/file_handle_cache.erl
+++ b/src/file_handle_cache.erl
@@ -1040,7 +1040,7 @@ tune_read_buffer_limit(Handle = #handle{read_buffer = Buf,
end, Lim)}.
maybe_reduce_read_cache(SparedRefs) ->
- case rabbit_memory_monitor:memory_use(bytes) of
+ case vm_memory_monitor:get_memory_use(bytes) of
{_, infinity} -> ok;
{MemUse, MemLimit} when MemUse < MemLimit -> ok;
{MemUse, MemLimit} -> reduce_read_cache(
diff --git a/src/rabbit_memory_monitor.erl b/src/rabbit_memory_monitor.erl
index de0b50ccdc..06ffb77b67 100644
--- a/src/rabbit_memory_monitor.erl
+++ b/src/rabbit_memory_monitor.erl
@@ -89,18 +89,8 @@ conserve_resources(Pid, disk, {_, Conserve, Node}) when node(Pid) =:= Node ->
conserve_resources(_Pid, _Source, _Conserve) ->
ok.
-memory_use(bytes) ->
- MemoryLimit = vm_memory_monitor:get_memory_limit(),
- {erlang:memory(total), case MemoryLimit > 0.0 of
- true -> MemoryLimit;
- false -> infinity
- end};
-memory_use(ratio) ->
- MemoryLimit = vm_memory_monitor:get_memory_limit(),
- case MemoryLimit > 0.0 of
- true -> erlang:memory(total) / MemoryLimit;
- false -> infinity
- end.
+memory_use(Type) ->
+ vm_memory_monitor:get_memory_use(Type).
%%----------------------------------------------------------------------------
%% Gen_server callbacks
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl
index 7c44cb8e12..9b401748e0 100644
--- a/src/vm_memory_monitor.erl
+++ b/src/vm_memory_monitor.erl
@@ -35,7 +35,7 @@
-export([get_total_memory/0, get_vm_limit/0,
get_check_interval/0, set_check_interval/1,
get_vm_memory_high_watermark/0, set_vm_memory_high_watermark/1,
- get_memory_limit/0]).
+ get_memory_limit/0, get_memory_use/1]).
%% for tests
-export([parse_line_linux/1]).
@@ -73,6 +73,8 @@
-spec get_vm_memory_high_watermark() -> vm_memory_high_watermark().
-spec set_vm_memory_high_watermark(vm_memory_high_watermark()) -> 'ok'.
-spec get_memory_limit() -> non_neg_integer().
+-spec get_memory_use(bytes) -> {non_neg_integer(), float() | infinity};
+ (ratio) -> float() | infinity.
%%----------------------------------------------------------------------------
%% Public API
@@ -106,6 +108,19 @@ set_vm_memory_high_watermark(Fraction) ->
get_memory_limit() ->
gen_server:call(?MODULE, get_memory_limit, infinity).
+get_memory_use(bytes) ->
+ MemoryLimit = get_memory_limit(),
+ {erlang:memory(total), case MemoryLimit > 0.0 of
+ true -> MemoryLimit;
+ false -> infinity
+ end};
+get_memory_use(ratio) ->
+ MemoryLimit = get_memory_limit(),
+ case MemoryLimit > 0.0 of
+ true -> erlang:memory(total) / MemoryLimit;
+ false -> infinity
+ end.
+
%%----------------------------------------------------------------------------
%% gen_server callbacks
%%----------------------------------------------------------------------------