diff options
| author | Piotr Sikora <piotr.sikora@frickle.com> | 2011-04-09 16:51:13 +0000 |
|---|---|---|
| committer | Piotr Sikora <piotr.sikora@frickle.com> | 2011-04-09 16:51:13 +0000 |
| commit | bb793eec22c039a8581645704f10e96c858eaf76 (patch) | |
| tree | 2010d5b9c8dab46621a1b2b1144a94af7909c12e | |
| parent | fe47ee0cc0544c66422b00e3f8dd43b73928908f (diff) | |
| download | rabbitmq-server-git-bb793eec22c039a8581645704f10e96c858eaf76.tar.gz | |
Detect available memory on OpenBSD.
While there, rename freebsd_sysctl() to sysctl(), since sysctl is available
on number of different platforms.
| -rw-r--r-- | src/vm_memory_monitor.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl index dcc6aff5c8..fb2fa267cb 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 |
