summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
authorMichael Klishin <michael@rabbitmq.com>2014-06-19 10:14:19 +0400
committerMichael Klishin <michael@rabbitmq.com>2014-06-19 10:14:19 +0400
commit3d2009008faaf9b1798db48c491e0ae113ec85a6 (patch)
tree6f0a78b14ac78df5af7ebedf5cb0e9882acb9b78 /src/rabbit.erl
parent4781adc18df89e12a3fb6a6e39e092de066162bd (diff)
downloadrabbitmq-server-3d2009008faaf9b1798db48c491e0ae113ec85a6.tar.gz
Log warnings if kernel poll is disabled or VM is running with just 1 scheduler
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 152d7ca8..79e24c4a 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -491,6 +491,8 @@ start(normal, []) ->
true = register(rabbit, self()),
print_banner(),
log_banner(),
+ warn_if_kernel_poll_is_disabled(),
+ warn_if_only_one_scheduler(),
run_boot_steps(),
{ok, SupPid};
Error ->
@@ -818,6 +820,24 @@ log_banner() ->
end || S <- Settings]),
error_logger:info_msg("~s", [Banner]).
+warn_if_kernel_poll_is_disabled() ->
+ case erlang:system_info(kernel_poll) of
+ true ->
+ ok;
+ false ->
+ error_logger:warning_msg("Kernel poll (epoll, kqueue, etc) is disabled. Throughput and CPU utilization may worsen.~n", []),
+ ok
+ end.
+
+warn_if_only_one_scheduler() ->
+ case erlang:system_info(schedulers) of
+ 1 ->
+ error_logger:warning_msg("Erlang VM is running with only one scheduler. It will not be able to use multiple CPU cores.~n", []),
+ ok;
+ _ ->
+ ok
+ end.
+
home_dir() ->
case init:get_argument(home) of
{ok, [[Home]]} -> Home;