diff --git a/etc/emqx.conf b/etc/emqx.conf index e07c9e4a8..3b26dc53b 100644 --- a/etc/emqx.conf +++ b/etc/emqx.conf @@ -160,6 +160,11 @@ node.name = emqx@127.0.0.1 ## Value: String node.cookie = emqxsecretcookie +## Enable SMP support of Erlang VM. +## +## Value: enable | auto | disable +node.smp = auto + ## Heartbeat monitoring of an Erlang runtime system. Comment the line to disable ## heartbeat, or set the value as 'on' ## @@ -168,6 +173,13 @@ node.cookie = emqxsecretcookie ## vm.args: -heart ## node.heartbeat = on +## Enable kernel poll. +## +## Value: on | off +## +## Default: on +node.kernel_poll = on + ## Sets the number of threads in async thread pool. Valid range is 0-1024. ## ## See: http://erlang.org/doc/man/erl.html diff --git a/etc/vm.args b/etc/vm.args deleted file mode 100644 index 43e6467d9..000000000 --- a/etc/vm.args +++ /dev/null @@ -1,95 +0,0 @@ -############################## -# Erlang VM Args -############################## - -## NOTE: -## -## Arguments configured in this file might be overridden by configs from `emqx.conf`. -## -## Some basic VM arguments are to be configured in `emqx.conf`, -## such as `node.name` for `-name` and `node.cooke` for `-setcookie`. - -## Sets the maximum number of simultaneously existing processes for this system. -#+P 2048000 - -## Sets the maximum number of simultaneously existing ports for this system. -#+Q 1024000 - -## Sets the maximum number of ETS tables -#+e 256000 - -## Sets the maximum number of atoms the virtual machine can handle. -#+t 1048576 - -## Set the location of crash dumps -#-env ERL_CRASH_DUMP {{ platform_log_dir }}/crash.dump - -## Set how many times generational garbages collections can be done without -## forcing a fullsweep collection. -#-env ERL_FULLSWEEP_AFTER 1000 - -## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive -## (Disabled by default..use with caution!) -#-heart - -## Specify the erlang distributed protocol. -## Can be one of: inet_tcp, inet6_tcp, inet_tls -#-proto_dist inet_tcp - -## Specify SSL Options in the file if using SSL for Erlang Distribution. -## Used only when -proto_dist set to inet_tls -#-ssl_dist_optfile {{ platform_etc_dir }}/ssl_dist.conf - -## Specifies the net_kernel tick time in seconds. -## This is the approximate time a connected node may be unresponsive until -## it is considered down and thereby disconnected. -#-kernel net_ticktime 60 - -## Sets the distribution buffer busy limit (dist_buf_busy_limit). -#+zdbbl 8192 - -## Sets default scheduler hint for port parallelism. -+spp true - -## Sets the number of threads in async thread pool. Valid range is 0-1024. -#+A 8 - -## Sets the default heap size of processes to the size Size. -#+hms 233 - -## Sets the default binary virtual heap size of processes to the size Size. -#+hmbs 46422 - -## 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 - -## Sets the number of scheduler threads to create and scheduler threads to set online. -#+S 8:8 - -## Sets the number of dirty CPU scheduler threads to create and dirty CPU scheduler threads to set online. -#+SDcpu 8:8 - -## Sets the number of dirty I/O scheduler threads to create. -#+SDio 10 - -## Suggested stack size, in kilowords, for scheduler threads. -#+sss 32 - -## Suggested stack size, in kilowords, for dirty CPU scheduler threads. -#+sssdcpu 40 - -## Suggested stack size, in kilowords, for dirty IO scheduler threads. -#+sssdio 40 - -## Sets scheduler bind type. -## Can be one of: u, ns, ts, ps, s, nnts, nnps, tnnps, db -#+sbt db - -## Sets a user-defined CPU topology. -#+sct L0-3c0-3p0N0:L4-7c0-3p1N1 - -## Sets the mapping of warning messages for error_logger -#+W w \ No newline at end of file diff --git a/etc/vm.args.edge b/etc/vm.args.edge deleted file mode 100644 index 20adc41ab..000000000 --- a/etc/vm.args.edge +++ /dev/null @@ -1,95 +0,0 @@ -############################## -# Erlang VM Args -############################## - -## NOTE: -## -## Arguments configured in this file might be overridden by configs from `emqx.conf`. -## -## Some basic VM arguments are to be configured in `emqx.conf`, -## such as `node.name` for `-name` and `node.cooke` for `-setcookie`. - -## Sets the maximum number of simultaneously existing processes for this system. -+P 20480 - -## Sets the maximum number of simultaneously existing ports for this system. -+Q 4096 - -## Sets the maximum number of ETS tables -+e 512 - -## Sets the maximum number of atoms the virtual machine can handle. -+t 65536 - -## Set the location of crash dumps --env ERL_CRASH_DUMP {{ platform_log_dir }}/crash.dump - -## Set how many times generational garbages collections can be done without -## forcing a fullsweep collection. --env ERL_FULLSWEEP_AFTER 0 - -## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive -## (Disabled by default..use with caution!) -#-heart - -## Specify the erlang distributed protocol. -## Can be one of: inet_tcp, inet6_tcp, inet_tls -#-proto_dist inet_tcp - -## Specify SSL Options in the file if using SSL for Erlang Distribution. -## Used only when -proto_dist set to inet_tls -#-ssl_dist_optfile {{ platform_etc_dir }}/ssl_dist.conf - -## Specifies the net_kernel tick time in seconds. -## This is the approximate time a connected node may be unresponsive until -## it is considered down and thereby disconnected. -#-kernel net_ticktime 60 - -## Sets the distribution buffer busy limit (dist_buf_busy_limit). -+zdbbl 1024 - -## Sets default scheduler hint for port parallelism. -+spp false - -## Sets the number of threads in async thread pool. Valid range is 0-1024. -+A 1 - -## Sets the default heap size of processes to the size Size. -#+hms 233 - -## Sets the default binary virtual heap size of processes to the size Size. -#+hmbs 46422 - -## 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 - -## Sets the number of scheduler threads to create and scheduler threads to set online. -+S 1:1 - -## Sets the number of dirty CPU scheduler threads to create and dirty CPU scheduler threads to set online. -+SDcpu 1:1 - -## Sets the number of dirty I/O scheduler threads to create. -+SDio 1 - -## Suggested stack size, in kilowords, for scheduler threads. -#+sss 32 - -## Suggested stack size, in kilowords, for dirty CPU scheduler threads. -#+sssdcpu 40 - -## Suggested stack size, in kilowords, for dirty IO scheduler threads. -#+sssdio 40 - -## Sets scheduler bind type. -## Can be one of: u, ns, ts, ps, s, nnts, nnps, tnnps, db -#+sbt db - -## Sets a user-defined CPU topology. -#+sct L0-3c0-3p0N0:L4-7c0-3p1N1 - -## Sets the mapping of warning messages for error_logger -#+W w \ No newline at end of file diff --git a/priv/emqx.schema b/priv/emqx.schema index f74b53e7f..cc5563d8a 100644 --- a/priv/emqx.schema +++ b/priv/emqx.schema @@ -191,12 +191,26 @@ end}. {default, "emqxsecretcookie"} ]}. +%% @doc SMP Support +{mapping, "node.smp", "vm_args.-smp", [ + {default, auto}, + {datatype, {enum, [enable, auto, disable]}}, + hidden +]}. + %% @doc http://erlang.org/doc/man/heart.html {mapping, "node.heartbeat", "vm_args.-heart", [ {datatype, flag}, hidden ]}. +%% @doc Enable Kernel Poll +{mapping, "node.kernel_poll", "vm_args.+K", [ + {default, on}, + {datatype, flag}, + hidden +]}. + {translation, "vm_args.-heart", fun(Conf) -> case cuttlefish:conf_get("node.heartbeat", Conf) of true -> "";