diff options
| author | Michael Klishin <michael@novemberain.com> | 2017-05-26 22:45:16 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-26 22:45:16 +0300 |
| commit | 904e5274b09eb55dfbad67de0a48e0f09410e134 (patch) | |
| tree | 8ad32ef993062d1809916c29667240297dc17a7b /src | |
| parent | 92702e4c5093ecb4ad911603c2357ccadebc52e9 (diff) | |
| parent | 1b976358b62db552f70a0f6c273431895e3cddb0 (diff) | |
| download | rabbitmq-server-git-904e5274b09eb55dfbad67de0a48e0f09410e134.tar.gz | |
Merge pull request #1234 from rabbitmq/rabbitmq-server-1224
Introduce a new config parameter, total_memory_available_override_value, to override total amount of memory available to the node
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm_memory_monitor.erl | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/vm_memory_monitor.erl b/src/vm_memory_monitor.erl index 9b401748e0..ba324d649e 100644 --- a/src/vm_memory_monitor.erl +++ b/src/vm_memory_monitor.erl @@ -81,13 +81,20 @@ %%---------------------------------------------------------------------------- get_total_memory() -> - try - get_total_memory(os:type()) - catch _:Error -> - rabbit_log:warning( - "Failed to get total system memory: ~n~p~n~p~n", - [Error, erlang:get_stacktrace()]), - unknown + case application:get_env(rabbit, total_memory_available_override_value) of + {ok, Value} -> + case rabbit_resource_monitor_misc:parse_information_unit(Value) of + {ok, ParsedTotal} -> + ParsedTotal; + {error, parse_error} -> + rabbit_log:warning( + "The override value for the total memmory available is " + "not a valid value: ~p, getting total from the system.~n", + [Value]), + get_total_memory_from_os() + end; + undefined -> + get_total_memory_from_os() end. get_vm_limit() -> get_vm_limit(os:type()). @@ -179,6 +186,15 @@ code_change(_OldVsn, State, _Extra) -> %%---------------------------------------------------------------------------- %% Server Internals %%---------------------------------------------------------------------------- +get_total_memory_from_os() -> + try + get_total_memory(os:type()) + catch _:Error -> + rabbit_log:warning( + "Failed to get total system memory: ~n~p~n~p~n", + [Error, erlang:get_stacktrace()]), + unknown + end. set_mem_limits(State, MemLimit) -> case erlang:system_info(wordsize) of |
