Skip to content

Commit 2739b40

Browse files
committed
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
1 parent 179f229 commit 2739b40

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

scripts/rabbitmq-env

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,11 @@ DEFAULT_SCHEDULER_BIND_TYPE="db"
8787
DEFAULT_DISTRIBUTION_BUFFER_SIZE=128000
8888
[ "x" = "x$RABBITMQ_DISTRIBUTION_BUFFER_SIZE" ] && RABBITMQ_DISTRIBUTION_BUFFER_SIZE=${DEFAULT_DISTRIBUTION_BUFFER_SIZE}
8989

90+
DEFAULT_MAX_NUMBER_OF_PROCESSES=1048576
91+
[ "x" = "x$RABBITMQ_MAX_NUMBER_OF_PROCESSES" ] && RABBITMQ_MAX_NUMBER_OF_PROCESSES=="${DEFAULT_MAX_NUMBER_OF_PROCESSES}"
92+
9093
## Common server defaults
91-
SERVER_ERL_ARGS="+P 1048576 +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbbl $RABBITMQ_DISTRIBUTION_BUFFER_SIZE"
94+
SERVER_ERL_ARGS="+P $RABBITMQ_MAX_NUMBER_OF_PROCESSES +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbbl $RABBITMQ_DISTRIBUTION_BUFFER_SIZE"
9295

9396
# We save the current value of $RABBITMQ_PID_FILE in case it was set by
9497
# an init script. If $CONF_ENV_FILE overrides it again, we must ignore

test/rabbitmq-env.bats

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,29 @@
1-
@test "can set RABBITMQ_SCHEDULER_BIND_TYPE from rabbitmq-env.conf" {
1+
@test "can configure RABBITMQ_SCHEDULER_BIND_TYPE" {
22
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
33
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
44
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
55
echo 'RABBITMQ_SCHEDULER_BIND_TYPE=u' > "$RABBITMQ_CONF_ENV_FILE"
66
source "$scripts_dir/rabbitmq-env"
7-
echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+stbt u' but got '$SERVER_ERL_ARGS'"
7+
echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+stbt u', but got: $RABBITMQ_SERVER_ERL_ARGS"
88
[[ $RABBITMQ_SERVER_ERL_ARGS == *+stbt\ u* ]]
99
}
1010

11-
@test "can set RABBITMQ_DISTRIBUTION_BUFFER_SIZE from rabbitmq-env.conf" {
11+
@test "can configure RABBITMQ_DISTRIBUTION_BUFFER_SIZE" {
1212
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
1313
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
1414
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
1515
echo 'RABBITMQ_DISTRIBUTION_BUFFER_SIZE=123456' > "$RABBITMQ_CONF_ENV_FILE"
1616
source "$scripts_dir/rabbitmq-env"
17-
echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+zdbbl 123456' but got '$SERVER_ERL_ARGS'"
17+
echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+zdbbl 123456', but got: $RABBITMQ_SERVER_ERL_ARGS"
1818
[[ $RABBITMQ_SERVER_ERL_ARGS == *+zdbbl\ 123456* ]]
1919
}
20+
21+
@test "can configure RABBITMQ_MAX_NUMBER_OF_PROCESSES" {
22+
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
23+
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
24+
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
25+
echo 'RABBITMQ_MAX_NUMBER_OF_PROCESSES=2000000' > "$RABBITMQ_CONF_ENV_FILE"
26+
source "$scripts_dir/rabbitmq-env"
27+
echo "expected RABBITMQ_SERVER_ERL_ARGS to contain '+P 2000000', but got: $RABBITMQ_SERVER_ERL_ARGS"
28+
[[ $RABBITMQ_SERVER_ERL_ARGS == *+P\ 2000000* ]]
29+
}

0 commit comments

Comments
 (0)