summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerhard Lazu <gerhard@lazu.co.uk>2018-02-23 17:53:33 +0000
committerMichael Klishin <mklishin@pivotal.io>2018-02-23 21:30:48 +0300
commit3e7f271a2f6c49e37170a1169d2c495f4983029b (patch)
treee2eac9647743e52ef06cd0c4f616f14c099e5951
parent0f023e97eb712e4989b47cb201a6a4838c985c63 (diff)
downloadrabbitmq-server-git-3e7f271a2f6c49e37170a1169d2c495f4983029b.tar.gz
Make maximum number of Erlang processes configurable via env
This property is essential for nodes that need to handle many connections / channels / queues. Related to #1513 (cherry picked from commit 2739b400a4500369b1762b0f82b68cf64047e451)
-rwxr-xr-xscripts/rabbitmq-env5
-rw-r--r--test/rabbitmq-env.bats18
2 files changed, 18 insertions, 5 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env
index 2a1730f302..3591ec856f 100755
--- a/scripts/rabbitmq-env
+++ b/scripts/rabbitmq-env
@@ -87,8 +87,11 @@ DEFAULT_SCHEDULER_BIND_TYPE="db"
DEFAULT_DISTRIBUTION_BUFFER_SIZE=128000
[ "x" = "x$RABBITMQ_DISTRIBUTION_BUFFER_SIZE" ] && RABBITMQ_DISTRIBUTION_BUFFER_SIZE=${DEFAULT_DISTRIBUTION_BUFFER_SIZE}
+DEFAULT_MAX_NUMBER_OF_PROCESSES=1048576
+[ "x" = "x$RABBITMQ_MAX_NUMBER_OF_PROCESSES" ] && RABBITMQ_MAX_NUMBER_OF_PROCESSES=="${DEFAULT_MAX_NUMBER_OF_PROCESSES}"
+
## Common server defaults
-SERVER_ERL_ARGS="+P 1048576 +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbbl $RABBITMQ_DISTRIBUTION_BUFFER_SIZE"
+SERVER_ERL_ARGS="+P $RABBITMQ_MAX_NUMBER_OF_PROCESSES +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbbl $RABBITMQ_DISTRIBUTION_BUFFER_SIZE"
# We save the current value of $RABBITMQ_PID_FILE in case it was set by
# an init script. If $CONF_ENV_FILE overrides it again, we must ignore
diff --git a/test/rabbitmq-env.bats b/test/rabbitmq-env.bats
index cbe4a27765..ac15e0dc06 100644
--- a/test/rabbitmq-env.bats
+++ b/test/rabbitmq-env.bats
@@ -1,19 +1,29 @@
-@test "can set RABBITMQ_SCHEDULER_BIND_TYPE from rabbitmq-env.conf" {
+@test "can configure RABBITMQ_SCHEDULER_BIND_TYPE" {
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
echo 'RABBITMQ_SCHEDULER_BIND_TYPE=u' > "$RABBITMQ_CONF_ENV_FILE"
source "$scripts_dir/rabbitmq-env"
- echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+stbt u' but got '$SERVER_ERL_ARGS'"
+ echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+stbt u', but got: $RABBITMQ_SERVER_ERL_ARGS"
[[ $RABBITMQ_SERVER_ERL_ARGS == *+stbt\ u* ]]
}
-@test "can set RABBITMQ_DISTRIBUTION_BUFFER_SIZE from rabbitmq-env.conf" {
+@test "can configure RABBITMQ_DISTRIBUTION_BUFFER_SIZE" {
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
echo 'RABBITMQ_DISTRIBUTION_BUFFER_SIZE=123456' > "$RABBITMQ_CONF_ENV_FILE"
source "$scripts_dir/rabbitmq-env"
- echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+zdbbl 123456' but got '$SERVER_ERL_ARGS'"
+ echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+zdbbl 123456', but got: $RABBITMQ_SERVER_ERL_ARGS"
[[ $RABBITMQ_SERVER_ERL_ARGS == *+zdbbl\ 123456* ]]
}
+
+@test "can configure RABBITMQ_MAX_NUMBER_OF_PROCESSES" {
+ declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
+ export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
+ export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
+ echo 'RABBITMQ_MAX_NUMBER_OF_PROCESSES=2000000' > "$RABBITMQ_CONF_ENV_FILE"
+ source "$scripts_dir/rabbitmq-env"
+ echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+P 2000000', but got: $RABBITMQ_SERVER_ERL_ARGS"
+ [[ $RABBITMQ_SERVER_ERL_ARGS == *+P\ 2000000* ]]
+}