Skip to content

Commit 58d7abd

Browse files
committed
Move rabbit_memory_monitor:memory_use/1 to vm_memory_monitor
The function is renamed to get_memory_use/1 in the process, to match other functions in the vm_memory_monitor module. The file_handle_cache uses that function. By moving it to vm_memory_monitor, we remove a dependency of file_handle_cache on a rabbit_* module. This will allow us to move both file_handle_cache and vm_memory_monitor to rabbitmq-common and help remove a dependency in the Erlang client on the broker because the former calls file_handle_cache:obtain/0. To sum up the situation before this commit with a graph: amqp_network_connection --[depends on]--> file_handle_cache (amqp_client) (rabbit) file_handle_cache --[depends on]--> rabbit_memory_monitor (rabbit) (rabbit) And the situation we want to reach after the move: amqp_network_connection --[depends on]--> file_handle_cache (amqp_client) (rabbit_common) file_handle_cache --[depends on]--> vm_memory_monitor (rabbit_common) (rabbit_common) rabbit_memory_monitor --[depends on]--> vm_memory_monitor (rabbit) (rabbit_common) [#118490793]
1 parent ced8290 commit 58d7abd

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

src/file_handle_cache.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1040,7 +1040,7 @@ tune_read_buffer_limit(Handle = #handle{read_buffer = Buf,
10401040
end, Lim)}.
10411041

10421042
maybe_reduce_read_cache(SparedRefs) ->
1043-
case rabbit_memory_monitor:memory_use(bytes) of
1043+
case vm_memory_monitor:get_memory_use(bytes) of
10441044
{_, infinity} -> ok;
10451045
{MemUse, MemLimit} when MemUse < MemLimit -> ok;
10461046
{MemUse, MemLimit} -> reduce_read_cache(

src/rabbit_memory_monitor.erl

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,8 @@ conserve_resources(Pid, disk, {_, Conserve, Node}) when node(Pid) =:= Node ->
8989
conserve_resources(_Pid, _Source, _Conserve) ->
9090
ok.
9191

92-
memory_use(bytes) ->
93-
MemoryLimit = vm_memory_monitor:get_memory_limit(),
94-
{erlang:memory(total), case MemoryLimit > 0.0 of
95-
true -> MemoryLimit;
96-
false -> infinity
97-
end};
98-
memory_use(ratio) ->
99-
MemoryLimit = vm_memory_monitor:get_memory_limit(),
100-
case MemoryLimit > 0.0 of
101-
true -> erlang:memory(total) / MemoryLimit;
102-
false -> infinity
103-
end.
92+
memory_use(Type) ->
93+
vm_memory_monitor:get_memory_use(Type).
10494

10595
%%----------------------------------------------------------------------------
10696
%% Gen_server callbacks

src/vm_memory_monitor.erl

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
-export([get_total_memory/0, get_vm_limit/0,
3636
get_check_interval/0, set_check_interval/1,
3737
get_vm_memory_high_watermark/0, set_vm_memory_high_watermark/1,
38-
get_memory_limit/0]).
38+
get_memory_limit/0, get_memory_use/1]).
3939

4040
%% for tests
4141
-export([parse_line_linux/1]).
@@ -73,6 +73,8 @@
7373
-spec get_vm_memory_high_watermark() -> vm_memory_high_watermark().
7474
-spec set_vm_memory_high_watermark(vm_memory_high_watermark()) -> 'ok'.
7575
-spec get_memory_limit() -> non_neg_integer().
76+
-spec get_memory_use(bytes) -> {non_neg_integer(), float() | infinity};
77+
(ratio) -> float() | infinity.
7678

7779
%%----------------------------------------------------------------------------
7880
%% Public API
@@ -106,6 +108,19 @@ set_vm_memory_high_watermark(Fraction) ->
106108
get_memory_limit() ->
107109
gen_server:call(?MODULE, get_memory_limit, infinity).
108110

111+
get_memory_use(bytes) ->
112+
MemoryLimit = get_memory_limit(),
113+
{erlang:memory(total), case MemoryLimit > 0.0 of
114+
true -> MemoryLimit;
115+
false -> infinity
116+
end};
117+
get_memory_use(ratio) ->
118+
MemoryLimit = get_memory_limit(),
119+
case MemoryLimit > 0.0 of
120+
true -> erlang:memory(total) / MemoryLimit;
121+
false -> infinity
122+
end.
123+
109124
%%----------------------------------------------------------------------------
110125
%% gen_server callbacks
111126
%%----------------------------------------------------------------------------

0 commit comments

Comments
 (0)