diff options
| author | Gerhard Lazu <gerhard@lazu.co.uk> | 2018-02-23 17:53:33 +0000 |
|---|---|---|
| committer | Gerhard Lazu <gerhard@lazu.co.uk> | 2018-02-23 18:05:49 +0000 |
| commit | 2739b400a4500369b1762b0f82b68cf64047e451 (patch) | |
| tree | 2e05f98da0abf22d7be07757159defc91f90ecd3 | |
| parent | 179f229094dc631b95ae595447bf2c3ee5dad3ef (diff) | |
| download | rabbitmq-server-git-2739b400a4500369b1762b0f82b68cf64047e451.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
| -rwxr-xr-x | scripts/rabbitmq-env | 5 | ||||
| -rw-r--r-- | test/rabbitmq-env.bats | 18 |
2 files changed, 18 insertions, 5 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env index 5214c686d2..afb17a88ec 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* ]] +} |
