系统调优---emqx百万连接测试系统、网络、erlang虚拟机参数调优
Linux 操作系統參數
系統全局允許分配的最大文件句柄數:
# 2 millions system-wide sysctl -w fs.file-max=2097152 sysctl -w fs.nr_open=2097152 echo 2097152 > /proc/sys/fs/nr_open允許當前會話 / 進程打開文件句柄數:
ulimit -n 1048576/etc/sysctl.conf
持久化 'fs.file-max' 設置到 /etc/sysctl.conf 文件:
fs.file-max = 1048576/etc/systemd/system.conf 設置服務最大文件句柄數:
DefaultLimitNOFILE=1048576/etc/security/limits.conf
/etc/security/limits.conf 持久化設置允許用戶 / 進程打開文件句柄數:
* soft nofile 1048576 * hard nofile 1048576TCP 協議棧網絡參數
并發連接 backlog 設置:
sysctl -w net.core.somaxconn=32768 sysctl -w net.ipv4.tcp_max_syn_backlog=16384 sysctl -w net.core.netdev_max_backlog=16384可用知名端口范圍:
sysctl -w net.ipv4.ip_local_port_range='1000 65535'注意:我執行該句時報錯sysctl: setting key "net.ipv4.ip_local_port_range": Invalid argument
將參數改為1024 65535就正常了
TCP Socket 讀寫 Buffer 設置:
sysctl -w net.core.rmem_default=262144 sysctl -w net.core.wmem_default=262144 sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216 sysctl -w net.core.optmem_max=16777216#sysctl -w net.ipv4.tcp_mem='16777216 16777216 16777216' sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216' sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'TCP 連接追蹤設置:
sysctl -w net.nf_conntrack_max=1000000 sysctl -w net.netfilter.nf_conntrack_max=1000000 sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30注意:該處執行如果報錯sysctl: cannot stat /proc/sys/net/nf_conntrack_max: No such file or directory
執行
lsmod |grep conntrack如果 返回 為空,表示沒有加載,執行下面命令 重新加載
modprobe ip_conntrack再次執行上述命令即可。
TIME-WAIT Socket 最大數量、回收與重用設置:
sysctl -w net.ipv4.tcp_max_tw_buckets=1048576# 注意:不建議開啟該設置,NAT 模式下可能引起連接 RST # sysctl -w net.ipv4.tcp_tw_recycle=1 # sysctl -w net.ipv4.tcp_tw_reuse=1FIN-WAIT-2 Socket 超時設置:
sysctl -w net.ipv4.tcp_fin_timeout=15Erlang 虛擬機參數
優化設置 Erlang 虛擬機啟動參數,配置文件 emqx/etc/emqx.conf:
## Erlang Process Limit node.process_limit = 2097152## Sets the maximum number of simultaneously existing ports for this system node.max_ports = 1048576EMQ X 消息服務器參數
設置 TCP 監聽器的 Acceptor 池大小,最大允許連接數。
EMQ X 社區版 配置文件 emqx/etc/emqx.confa EMQ X 企業版 配置文件 emqx/etc/listeners.conf
## TCP Listener listener.tcp.external = 0.0.0.0:1883 listener.tcp.external.acceptors = 64 listener.tcp.external.max_connections = 1024000總結
以上是生活随笔為你收集整理的系统调优---emqx百万连接测试系统、网络、erlang虚拟机参数调优的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脑科学发展到今天,距离记忆编辑提取还有多
- 下一篇: 全球及中国汽车轻触开关行业发展展望及投资