summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vm_memory_monitor.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl
index dcc6aff5..fb2fa267 100644
--- a/src/vm_memory_monitor.erl
+++ b/src/vm_memory_monitor.erl
@@ -239,10 +239,13 @@ get_total_memory({unix,darwin}) ->
PageSize * (Inactive + Active + Free + Wired);
get_total_memory({unix,freebsd}) ->
- PageSize = freebsd_sysctl("vm.stats.vm.v_page_size"),
- PageCount = freebsd_sysctl("vm.stats.vm.v_page_count"),
+ PageSize = sysctl("vm.stats.vm.v_page_size"),
+ PageCount = sysctl("vm.stats.vm.v_page_count"),
PageCount * PageSize;
+get_total_memory({unix,openbsd}) ->
+ sysctl("hw.usermem");
+
get_total_memory({win32,_OSname}) ->
%% Due to the Erlang print format bug, on Windows boxes the memory
%% size is broken. For example Windows 7 64 bit with 4Gigs of RAM
@@ -342,7 +345,7 @@ parse_line_aix(Line) ->
false -> list_to_integer(Value)
end}.
-freebsd_sysctl(Def) ->
+sysctl(Def) ->
list_to_integer(cmd("/sbin/sysctl -n " ++ Def) -- "\n").
%% file:read_file does not work on files in /proc as it seems to get