emqx优化
前置:
测试版本为emqx 开源版5.8.6;
优化:
1. 调整服务器文件描述符,
ulimit -SHn 300000 sed -i s/65535/300000/g /etc/security/limits.conf ulimit -n
2. 调整emqx服务端配置
node { max_ports = 2097152 dist_buffer_size = 2097151 } force_shutdown { enable = true max_message_queue_len = 200000 max_heap_size = 256MB } log { file { enable = true level = warning path="/data/emqx-logs/emqx.log" rotation_count = 20 rotation_size = 400MB time_offset = system timestamp_format = auto } } durable_sessions { enable = false } isteners { tcp { default { acceptors = 16 max_connections = 1024000 max_conn_rate = 10000 } } } mqtt { max_inflight = 256 max_mqueue_len = 20000 mqueue_store_qos0 = false max_packet_size = "1MB" max_topic_alias = 10 } session { expiry_interval = "2h" max_subscriptions = 100000 upgrade_qos = false } slow_subs { enable = true threshold = "100ms" stats_type = "whole" } force_gc_policy = true persistent_session_queue_purge_interval = "5s"
3. 前两步调整后,压测时发现仍会出现进程单核cpu90%+,但服务器整体cpu、内存还有很大空间;因此调整vm参数:
## 普通调度器:总数=在线数=8 +S 8:8 ## 脏CPU调度器:通常与普通调度器数量相同或略少,8是稳妥选择 +SDcpu 8 ## 脏IO调度器:通常无需太多,4即可 +SDio 4 ## 调度器绑定策略:使用更激进的线程级全局绑定,缓解单核瓶颈 +sbt db ## 调度器唤醒策略:低延迟模式 +swt very_low

浙公网安备 33010602011771号