diff options
| author | Loïc Hoguin <essen@ninenines.eu> | 2018-05-21 13:26:01 +0200 |
|---|---|---|
| committer | Loïc Hoguin <essen@ninenines.eu> | 2018-05-29 11:49:09 +0200 |
| commit | ced1c03338dbb0e19a7ceccd1874432d4235e15f (patch) | |
| tree | 27f09488a3fee795f5278e57801fa500f5816065 /scripts/rabbitmq-service.bat | |
| parent | d0423f958599cba5148864997aa8446c873dad00 (diff) | |
| download | rabbitmq-server-git-ced1c03338dbb0e19a7ceccd1874432d4235e15f.tar.gz | |
Use better default memory allocators
We have settled on the following configuration for memory
allocators after testing many different combinations:
+MBas ageffcbf +MHas ageffcbf +MBlmbcs 512 +MHlmbcs 512 +MMmcs 30
They reduce the memory usage and help RabbitMQ reclaim memory,
at the cost of a slight decrease in performance due to an
increased number of memory operations.
We need to start Erlang with these values in order to figure
out whether they are supported. The allocator strategies we
recommend were introduced in Erlang/OTP 20.2.3. The values
can be overriden using RABBITMQ_SERVER_ERL_ARGS.
cc @gerhard
Diffstat (limited to 'scripts/rabbitmq-service.bat')
| -rw-r--r-- | scripts/rabbitmq-service.bat | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat index cef481c252..0a93462359 100644 --- a/scripts/rabbitmq-service.bat +++ b/scripts/rabbitmq-service.bat @@ -160,6 +160,27 @@ if ERRORLEVEL 3 ( set RABBITMQ_DIST_ARG=-kernel inet_dist_listen_min !RABBITMQ_DIST_PORT! -kernel inet_dist_listen_max !RABBITMQ_DIST_PORT!
)
+rem The default allocation strategy RabbitMQ is using was introduced
+rem in Erlang/OTP 20.2.3. Earlier Erlang versions fail to start with
+rem this configuration. We therefore need to ensure that erl accepts
+rem these values before we can use them.
+rem
+rem The defaults are meant to reduce RabbitMQ's memory usage and help
+rem it reclaim memory at the cost of a slight decrease in performance
+rem (due to an increase in memory operations). These defaults can be
+rem overriden using the RABBITMQ_SERVER_ERL_ARGS variable.
+
+set RABBITMQ_DEFAULT_ALLOC_ARGS=+MBas ageffcbf +MHas ageffcbf +MBlmbcs 512 +MHlmbcs 512 +MMmcs 30
+
+"!ERLANG_HOME!\bin\erl.exe" ^
+ !RABBITMQ_DEFAULT_ALLOC_ARGS! ^
+ -boot !CLEAN_BOOT_FILE! ^
+ -noinput -eval "halt(0)"
+
+if ERRORLEVEL 1 (
+ set RABBITMQ_DEFAULT_ALLOC_ARGS=
+)
+
if not exist "!RABBITMQ_SCHEMA_DIR!" (
mkdir "!RABBITMQ_SCHEMA_DIR!"
)
@@ -254,6 +275,7 @@ set ERLANG_SERVICE_ARGUMENTS= ^ !RABBITMQ_CONFIG_ARG! ^
+W w ^
+A "!RABBITMQ_IO_THREAD_POOL_SIZE!" ^
+!RABBITMQ_DEFAULT_ALLOC_ARGS! ^
!RABBITMQ_SERVER_ERL_ARGS! ^
!RABBITMQ_LISTEN_ARG! ^
-kernel inet_default_connect_options "[{nodelay,true}]" ^
|
