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
commitbdf5a7da7de3da82d1088569f241f3b52c949d1a (patch)
tree6f0a78b14ac78df5af7ebedf5cb0e9882acb9b78 /src/rabbit.erl
parentc69f13285074b856a9239967ad46ac376e74c843 (diff)
downloadrabbitmq-server-git-bdf5a7da7de3da82d1088569f241f3b52c949d1a.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 152d7ca8a3..79e24c4a2c 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;