Просмотр исходного кода

Tuning the Erlang VM for the broker and edge (#3197)

* Tuning the Erlang VM for the broker and edge

* Remove +stbt and use +sbt instead
Feng Lee 6 лет назад
Родитель
Сommit
4b8b5bfa2c
2 измененных файлов с 45 добавлено и 15 удалено
  1. 21 7
      etc/vm.args
  2. 24 8
      etc/vm.args.edge

+ 21 - 7
etc/vm.args

@@ -1,5 +1,5 @@
 ######################################################################
-## Erlang VM Args
+## Erlang VM Args for EMQ X Broker
 ######################################################################
 
 ## NOTE:
@@ -10,13 +10,13 @@
 ## such as `node.name` for `-name` and `node.cooke` for `-setcookie`.
 
 ## Sets the maximum number of simultaneously existing processes for this system.
-+P 2048000
++P 2097152
 
 ## Sets the maximum number of simultaneously existing ports for this system.
-+Q 1024000
++Q 1048576
 
 ## Sets the maximum number of ETS tables
-+e 256000
++e 262144
 
 ## Sets the maximum number of atoms the virtual machine can handle.
 #+t 1048576
@@ -61,11 +61,20 @@
 ## Sets the default binary virtual heap size of processes to the size Size.
 #+hmbs 46422
 
+## Sets the default maximum heap size of processes to the size Size.
+## Defaults to 0, which means that no maximum heap size is used.
+##For more information, see process_flag(max_heap_size, MaxHeapSize).
+#+hmax 0
+
+## Sets the default value for process flag message_queue_data. Defaults to on_heap.
+#+hmqd on_heap | off_heap
+
 ## Sets the number of IO pollsets to use when polling for I/O.
 #+IOp 1
 
 ## Sets the number of IO poll threads to use when polling for I/O.
-#+IOt 1
+## Increase this for the busy systems with many concurrent connection.
++IOt 4
 
 ## Sets the number of scheduler threads to create and scheduler threads to set online.
 #+S 8:8
@@ -74,7 +83,7 @@
 #+SDcpu 8:8
 
 ## Sets the number of dirty I/O scheduler threads to create.
-#+SDio 10
++SDio 8
 
 ## Suggested stack size, in kilowords, for scheduler threads.
 #+sss 32
@@ -95,7 +104,12 @@
 ## Sets the mapping of warning messages for error_logger
 #+W w
 
+## Sets time warp mode: no_time_warp | single_time_warp | multi_time_warp
+#+C no_time_warp
+
+## Prevents loading information about source filenames and line numbers.
+#+L
+
 ## Specifies how long time (in milliseconds) to spend shutting down the system.
 ## See: http://erlang.org/doc/man/erl.html
 #-shutdown_time 15000
-

+ 24 - 8
etc/vm.args.edge

@@ -1,6 +1,6 @@
-##############################
-# Erlang VM Args
-##############################
+######################################################################
+## Erlang VM Args for EMQ X Edge
+######################################################################
 
 ## NOTE:
 ##
@@ -10,8 +10,7 @@
 ## such as `node.name` for `-name` and `node.cooke` for `-setcookie`.
 
 ## Sets the maximum number of simultaneously existing processes for this system.
-+P 20480
-
++P 16384
 ## Sets the maximum number of simultaneously existing ports for this system.
 +Q 4096
 
@@ -19,7 +18,7 @@
 +e 512
 
 ## Sets the maximum number of atoms the virtual machine can handle.
-+t 65536
++t 262144
 
 ## Set the location of crash dumps
 -env ERL_CRASH_DUMP {{ platform_log_dir }}/crash.dump
@@ -30,7 +29,7 @@
 
 ## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive
 ## (Disabled by default..use with caution!)
-#-heart
+-heart
 
 ## Specify the erlang distributed protocol.
 ## Can be one of: inet_tcp, inet6_tcp, inet_tls
@@ -52,6 +51,7 @@
 +spp false
 
 ## Sets the number of threads in async thread pool. Valid range is 0-1024.
+## Increase the parameter if there are many simultaneous file I/O operations.
 +A 1
 
 ## Sets the default heap size of processes to the size Size.
@@ -60,6 +60,14 @@
 ## Sets the default binary virtual heap size of processes to the size Size.
 #+hmbs 46422
 
+## Sets the default maximum heap size of processes to the size Size.
+## Defaults to 0, which means that no maximum heap size is used.
+##For more information, see process_flag(max_heap_size, MaxHeapSize).
+#+hmax 0
+
+## Sets the default value for process flag message_queue_data. Defaults to on_heap.
+#+hmqd on_heap | off_heap
+
 ## Sets the number of IO pollsets to use when polling for I/O.
 +IOp 1
 
@@ -94,5 +102,13 @@
 ## Sets the mapping of warning messages for error_logger
 #+W w
 
-#Prevents loading information about source filenames and line numbers.
+## Sets time warp mode: no_time_warp | single_time_warp | multi_time_warp
+#+C no_time_warp
+
+## Prevents loading information about source filenames and line numbers.
 +L
+
+## Specifies how long time (in milliseconds) to spend shutting down the system.
+## See: http://erlang.org/doc/man/erl.html
+-shutdown_time 10000
+