summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarek Majkowski <marek@rabbitmq.com>2010-09-24 14:52:55 +0100
committerMarek Majkowski <marek@rabbitmq.com>2010-09-24 14:52:55 +0100
commit48b47cdc7990f3e32af37ebe00ca754918524da6 (patch)
treef480bd30a5ea026058799f4ad87c647cf159dace /src
parent42cd6a4e553e44dd09d2d8004cf7ea3eac7da25c (diff)
parentd2c3b75c88cb7d0cf9765d8c5bce8470218af88b (diff)
downloadrabbitmq-server-git-48b47cdc7990f3e32af37ebe00ca754918524da6.tar.gz
bug23290 merged into default
Diffstat (limited to 'src')
-rw-r--r--src/vm_memory_monitor.erl17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl
index e658f005a3..220df4db22 100644
--- a/src/vm_memory_monitor.erl
+++ b/src/vm_memory_monitor.erl
@@ -296,6 +296,12 @@ get_total_memory({unix, sunos}) ->
Dict = dict:from_list(lists:map(fun parse_line_sunos/1, Lines)),
dict:fetch('Memory size', Dict);
+get_total_memory({unix, aix}) ->
+ File = cmd("/usr/bin/vmstat -v"),
+ Lines = string:tokens(File, "\n"),
+ Dict = dict:from_list(lists:map(fun parse_line_aix/1, Lines)),
+ dict:fetch('memory pages', Dict) * 4096;
+
get_total_memory(_OsType) ->
unknown.
@@ -341,6 +347,17 @@ parse_line_sunos(Line) ->
[Name] -> {list_to_atom(Name), none}
end.
+%% Lines look like " 12345 memory pages"
+%% or " 80.1 maxpin percentage"
+parse_line_aix(Line) ->
+ [Value | NameWords] = string:tokens(Line, " "),
+ Name = string:join(NameWords, " "),
+ {list_to_atom(Name),
+ case lists:member($., Value) of
+ true -> trunc(list_to_float(Value));
+ _ -> list_to_integer(Value)
+ end}.
+
freebsd_sysctl(Def) ->
list_to_integer(cmd("/sbin/sysctl -n " ++ Def) -- "\n").