diff options
| author | Michael Klishin <michael@novemberain.com> | 2018-02-26 13:28:14 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-02-26 13:28:14 +0300 |
| commit | 846984d36e529ff8d04dfcb1404bd56f41dfb0b1 (patch) | |
| tree | bc1cb3d92ba2329c1512c7355200bfa9606ac285 | |
| parent | 0f023e97eb712e4989b47cb201a6a4838c985c63 (diff) | |
| parent | f38e9c4f44892ee6fb4c78d51e7124e20a6de61a (diff) | |
| download | rabbitmq-server-git-846984d36e529ff8d04dfcb1404bd56f41dfb0b1.tar.gz | |
Merge pull request #1529 from rabbitmq/configurable-max-procs-max-atoms-master
Configurable max procs max atoms master
| -rwxr-xr-x | scripts/rabbitmq-env | 16 | ||||
| -rw-r--r-- | scripts/rabbitmq-env.bat | 52 | ||||
| -rw-r--r-- | test/rabbitmq-env.bats | 32 |
3 files changed, 68 insertions, 32 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env index 2a1730f302..71b498671b 100755 --- a/scripts/rabbitmq-env +++ b/scripts/rabbitmq-env @@ -82,13 +82,23 @@ ESCRIPT_DIR="${RABBITMQ_HOME}/escript" [ -f ${RABBITMQ_CONF_ENV_FILE} ] && . ${RABBITMQ_CONF_ENV_FILE} || true DEFAULT_SCHEDULER_BIND_TYPE="db" -[ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE=${DEFAULT_SCHEDULER_BIND_TYPE} +[ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE="$SCHEDULER_BIND_TYPE" +[ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE="$DEFAULT_SCHEDULER_BIND_TYPE" DEFAULT_DISTRIBUTION_BUFFER_SIZE=128000 -[ "x" = "x$RABBITMQ_DISTRIBUTION_BUFFER_SIZE" ] && RABBITMQ_DISTRIBUTION_BUFFER_SIZE=${DEFAULT_DISTRIBUTION_BUFFER_SIZE} +[ "x" = "x$RABBITMQ_DISTRIBUTION_BUFFER_SIZE" ] && RABBITMQ_DISTRIBUTION_BUFFER_SIZE="$DISTRIBUTION_BUFFER_SIZE" +[ "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="$MAX_NUMBER_OF_PROCESSES" +[ "x" = "x$RABBITMQ_MAX_NUMBER_OF_PROCESSES" ] && RABBITMQ_MAX_NUMBER_OF_PROCESSES="$DEFAULT_MAX_NUMBER_OF_PROCESSES" + +DEFAULT_MAX_NUMBER_OF_ATOMS=5000000 +[ "x" = "x$RABBITMQ_MAX_NUMBER_OF_ATOMS" ] && RABBITMQ_MAX_NUMBER_OF_ATOMS="$MAX_NUMBER_OF_ATOMS" +[ "x" = "x$RABBITMQ_MAX_NUMBER_OF_ATOMS" ] && RABBITMQ_MAX_NUMBER_OF_ATOMS="$DEFAULT_MAX_NUMBER_OF_ATOMS" ## 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 $RABBITMQ_MAX_NUMBER_OF_ATOMS +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/scripts/rabbitmq-env.bat b/scripts/rabbitmq-env.bat index 78c0499699..6c68b29d37 100644 --- a/scripts/rabbitmq-env.bat +++ b/scripts/rabbitmq-env.bat @@ -27,44 +27,50 @@ if not defined ERLANG_HOME ( )
REM ## Set defaults
-REM . ${SCRIPT_DIR}/rabbitmq-defaults
call "%SCRIPT_DIR%\rabbitmq-defaults.bat"
-set DEFAULT_SCHEDULER_BIND_TYPE=db
+if "!RABBITMQ_CONF_ENV_FILE!"=="" (
+ set RABBITMQ_CONF_ENV_FILE=!CONF_ENV_FILE!
+)
+
+if exist "!RABBITMQ_CONF_ENV_FILE!" (
+ call "!RABBITMQ_CONF_ENV_FILE!"
+)
-REM [ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE=${DEFAULT_SCHEDULER_BIND_TYPE}
-REM set the default scheduling bind type
+set DEFAULT_SCHEDULER_BIND_TYPE=db
+if "!RABBITMQ_SCHEDULER_BIND_TYPE!"=="" (
+ set RABBITMQ_SCHEDULER_BIND_TYPE=!SCHEDULER_BIND_TYPE!
+)
if "!RABBITMQ_SCHEDULER_BIND_TYPE!"=="" (
set RABBITMQ_SCHEDULER_BIND_TYPE=!DEFAULT_SCHEDULER_BIND_TYPE!
)
-REM DEFAULT_DISTRIBUTION_BUFFER_SIZE=128000
-REM set the VM distribution buffer size
-REM [ "x" = "x$RABBITMQ_DISTRIBUTION_BUFFER_SIZE" ] && RABBITMQ_DISTRIBUTION_BUFFER_SIZE=${DEFAULT_DISTRIBUTION_BUFFER_SIZE}
set DEFAULT_DISTRIBUTION_BUFFER_SIZE=128000
if "!RABBITMQ_DISTRIBUTION_BUFFER_SIZE!"=="" (
+ set RABBITMQ_DISTRIBUTION_BUFFER_SIZE=!DISTRIBUTION_BUFFER_SIZE!
+)
+if "!RABBITMQ_DISTRIBUTION_BUFFER_SIZE!"=="" (
set RABBITMQ_DISTRIBUTION_BUFFER_SIZE=!DEFAULT_DISTRIBUTION_BUFFER_SIZE!
)
-REM # warn about old rabbitmq.conf file, if no new one
-REM if [ -f /etc/rabbitmq/rabbitmq.conf ] && \
-REM [ ! -f ${CONF_ENV_FILE} ] ; then
-REM echo -n "WARNING: ignoring /etc/rabbitmq/rabbitmq.conf -- "
-REM echo "location has moved to ${CONF_ENV_FILE}"
-REM fi
-
-REM Common defaults
-set SERVER_ERL_ARGS=+P 1048576 +t 5000000 +stbt !RABBITMQ_SCHEDULER_BIND_TYPE! +zdbbl !RABBITMQ_DISTRIBUTION_BUFFER_SIZE!
-
-REM ## Get configuration variables from the configure environment file
-REM [ -f ${CONF_ENV_FILE} ] && . ${CONF_ENV_FILE} || true
-if "!RABBITMQ_CONF_ENV_FILE!"=="" (
- set RABBITMQ_CONF_ENV_FILE=!CONF_ENV_FILE!
+set DEFAULT_MAX_NUMBER_OF_PROCESSES=1048576
+if "!RABBITMQ_MAX_NUMBER_OF_PROCESSES!"=="" (
+ set RABBITMQ_MAX_NUMBER_OF_PROCESSES=!MAX_NUMBER_OF_PROCESSES!
+)
+if "!RABBITMQ_MAX_NUMBER_OF_PROCESSES!"=="" (
+ set RABBITMQ_MAX_NUMBER_OF_PROCESSES=!DEFAULT_MAX_NUMBER_OF_PROCESSES!
)
-if exist "!RABBITMQ_CONF_ENV_FILE!" (
- call "!RABBITMQ_CONF_ENV_FILE!"
+set DEFAULT_MAX_NUMBER_OF_ATOMS=5000000
+if "!RABBITMQ_MAX_NUMBER_OF_ATOMS!"=="" (
+ set RABBITMQ_MAX_NUMBER_OF_ATOMS=!MAX_NUMBER_OF_ATOMS!
)
+if "!RABBITMQ_MAX_NUMBER_OF_ATOMS!"=="" (
+ set RABBITMQ_MAX_NUMBER_OF_ATOMS=!DEFAULT_MAX_NUMBER_OF_ATOMS!
+)
+
+REM Common defaults
+set SERVER_ERL_ARGS=+P !RABBITMQ_MAX_NUMBER_OF_PROCESSES! +t !RABBITMQ_MAX_NUMBER_OF_ATOMS! +stbt !RABBITMQ_SCHEDULER_BIND_TYPE! +zdbbl !RABBITMQ_DISTRIBUTION_BUFFER_SIZE!
REM Make sure $RABBITMQ_BASE contains no non-ASCII characters.
if not exist "!RABBITMQ_BASE!" (
diff --git a/test/rabbitmq-env.bats b/test/rabbitmq-env.bats index cbe4a27765..cb45abadc4 100644 --- a/test/rabbitmq-env.bats +++ b/test/rabbitmq-env.bats @@ -1,19 +1,39 @@ -@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" + echo '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" + echo '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 '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* ]] +} + +@test "can configure RABBITMQ_MAX_NUMBER_OF_ATOMS" { + 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 'MAX_NUMBER_OF_ATOMS=10000000' > "$RABBITMQ_CONF_ENV_FILE" + source "$scripts_dir/rabbitmq-env" + echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+t 10000000', but got: $RABBITMQ_SERVER_ERL_ARGS" + [[ $RABBITMQ_SERVER_ERL_ARGS == *+t\ 10000000* ]] +} |
