summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2011-08-30 13:51:58 +0100
committerEmile Joubert <emile@rabbitmq.com>2011-08-30 13:51:58 +0100
commit8d4c559a971d25cd818dd189b58b07a123edb490 (patch)
treebfed062b3885100cfb4462dcf2e02e106f52e188
parent3607125be153616b1b98a0fe1a55018d9681877d (diff)
downloadrabbitmq-server-git-8d4c559a971d25cd818dd189b58b07a123edb490.tar.gz
Report vm memory limits differently
-rw-r--r--docs/rabbitmqctl.1.xml12
-rw-r--r--src/rabbit.erl3
-rw-r--r--src/rabbit_control.erl6
-rw-r--r--src/vm_memory_monitor.erl7
4 files changed, 23 insertions, 5 deletions
diff --git a/docs/rabbitmqctl.1.xml b/docs/rabbitmqctl.1.xml
index e5ec3eed7f..40dea46f8f 100644
--- a/docs/rabbitmqctl.1.xml
+++ b/docs/rabbitmqctl.1.xml
@@ -1371,6 +1371,7 @@
</para>
</listitem>
</varlistentry>
+
<varlistentry>
<term><cmdsynopsis><command>set_vm_memory_high_watermark</command> <arg choice="req"><replaceable>fraction</replaceable></arg></cmdsynopsis></term>
<listitem>
@@ -1383,6 +1384,17 @@
</variablelist>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><cmdsynopsis><command>get_vm_memory_limits</command></cmdsynopsis></term>
+ <listitem>
+ <para>
+ Show total memory reported by OS; and memory monitoring limit and threshhold.
+ The memory total and limit are reported in bytes.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</refsect2>
</refsect1>
diff --git a/src/rabbit.erl b/src/rabbit.erl
index fdebeaf859..46f7d9d1f3 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -235,9 +235,6 @@ status() ->
{running_applications, application:which_applications()},
{os, os:type()},
{erlang_version, erlang:system_info(system_version)},
- {vm_memory_high_watermark,
- vm_memory_monitor:get_vm_memory_high_watermark()},
- {vm_memory_limit, vm_memory_monitor:get_memory_limit()},
{memory, erlang:memory()}].
environment() ->
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index b386e3383a..abb462501f 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -329,6 +329,10 @@ action(set_vm_memory_high_watermark, Node, [Arg], _Opts, Inform) ->
Inform("Setting memory threshhold on ~p to ~p", [Node, Frac]),
rpc_call(Node, vm_memory_monitor, set_vm_memory_high_watermark, [Frac]);
+action(get_vm_memory_limits, Node, _Args, _Opts, Inform) ->
+ Inform("Getting memory monitoring limits of node ~p", [Node]),
+ display_call_result(Node, {vm_memory_monitor, get_vm_info, []});
+
action(set_permissions, Node, [Username, CPerm, WPerm, RPerm], Opts, Inform) ->
VHost = proplists:get_value(?VHOST_OPT, Opts),
Inform("Setting permissions for user ~p in vhost ~p", [Username, VHost]),
@@ -352,7 +356,7 @@ action(report, Node, _Args, _Opts, Inform) ->
io:format("Reporting server status on ~p~n~n", [erlang:universaltime()]),
[begin ok = action(Action, N, [], [], Inform), io:nl() end ||
N <- unsafe_rpc(Node, rabbit_mnesia, running_clustered_nodes, []),
- Action <- [status, cluster_status, environment]],
+ Action <- [status, cluster_status, environment, get_vm_memory_limits]],
VHosts = unsafe_rpc(Node, rabbit_vhost, list, []),
[print_report(Node, Q) || Q <- ?GLOBAL_QUERIES],
[print_report(Node, Q, [V]) || Q <- ?VHOST_QUERIES, V <- VHosts],
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl
index 3b95591488..4779bcad90 100644
--- a/src/vm_memory_monitor.erl
+++ b/src/vm_memory_monitor.erl
@@ -35,7 +35,7 @@
-export([update/0, 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_vm_info/0]).
-define(SERVER, ?MODULE).
@@ -99,6 +99,11 @@ set_vm_memory_high_watermark(Fraction) ->
get_memory_limit() ->
gen_server:call(?MODULE, get_memory_limit, infinity).
+get_vm_info() ->
+ [{os_total_memory, get_total_memory()},
+ {monitoring_memory_limit, get_memory_limit()},
+ {monitoring_memory_threshhold, get_vm_memory_high_watermark()}].
+
%%----------------------------------------------------------------------------
%% gen_server callbacks
%%----------------------------------------------------------------------------