三台emqx4.4.x做的集群(后面会减为2台),目前连接有1+w。
1_scheduler、2_scheduler 不知道线程是做什么用的 cpu占比比较高,该如何优化。
你的 CPU 是几个核心的?scheduler 线程是 Erlang 的调度器,用于分配任务,当负载较大时 CPU 时间片占用多是比较正常的现象。
三台ecs,2核4G。 有怎么优化手段么?
调用emqx的http api接口比较多,不知道跟这个有关系么?
会有关系。HTTP API 接口调用或者 MQTT 消息速率比较快都会导致 CPU 高。
由于设备的clientId后面随机数每次变化,有什么高效的方法判断设备是否在线?
现在用的是这连个api
/api/v4/clients?_like_clientid=someCID
/api/v4/subscriptions?_match_topic=xxx
当 clientid/subscriptions 数目比较多的时候,你的这两个模糊搜索方式会非常费。
建议使用完整的 clientid 字符串匹配搜索:/api/v4/clients/{clientid}
,不要使用 like*,也不要使用 username 来搜索。subscriptions 接口同样,使用完整的 topic 而不是通配符。