性能从哪几个旋钮来
采样间隔决定服务器多久去读一次源数据,发布间隔决定多久往客户端推一次,队列大小决定两次发布之间能缓存多少个变化,死区决定多小的波动不值得产生通知。这四项共同决定服务器负载与网络流量:采样过密会拖高处理器占用,死区过小会让无效波动占满带宽,队列过小则在突发变化时丢中间值。调优的基本顺序是先按用途分档,再分档建订阅,最后逐项微调,而不是对全站点位平均用力。
基本信息
| 采样间隔 | 服务器读源数据的频率,决定设备侧负载 |
|---|---|
| 发布间隔 | 服务器向客户端推送的节奏,决定网络流量 |
| 队列大小 | 两次发布之间可缓存的变化数,取 1 只保留最新 |
| 死区 | 小于阈值的波动不产生通知,分绝对值与百分比 |
| 修正值 | 服务器返回实际生效的参数,估算必须基于它 |
| 诊断计数 | 订阅数、监控项数与发布请求计数可用于容量评估 |
典型使用场景
- 按用途分档:安全与状态信号走快档,温度压力走慢档,累计量走统计档
- 模拟量降噪:按量程百分比设死区,过滤仪表噪声带来的无效推送
- 状态量优化:队列取 1,只关心当前状态而不关心中间过程
- 首次建链:先用批量读获取初值,再建立订阅,避免客户端长时间空白
- 容量评估:按监控项总数与发布间隔估算服务器处理器与带宽
- 异常定位:对比请求参数与修正参数,判断是配置问题还是服务器能力上限
症状与调整方向
| 症状 | 可能原因 | 调整方向 |
|---|---|---|
| 服务器处理器占用高 | 采样过密或监控项数量过大 | 拉长采样、按档合并、减少监控项 |
| 网络流量偏大 | 死区过小或发布间隔过短 | 设死区、拉长发布间隔 |
| 数据看起来滞后 | 发布间隔过长或队列过小 | 缩短发布间隔、适当增大队列 |
| 通知溢出 | 客户端取数慢或队列被填满 | 拉长发布间隔、增大队列或提高取数速率 |
| 个别点位拖慢整批 | 高频项与低频项混在同一订阅 | 按采样节奏拆分订阅 |
分档配置思路
分档配置思路
# 快档:联锁与运行状态,采样 100 毫秒、队列 1、不设死区
# 慢档:温度与压力,采样 1 秒、死区设为量程的百分之零点五左右
# 统计档:累计量,采样 5 秒,仅在数值变化时推送
# 建立订阅后读回修正值,用它重新估算负载
# RevisedSamplingInterval / RevisedPublishingInterval / RevisedQueueSize百分比死区跟随量程解释,换单位或改量程后必须重新核对;量纲变化时绝对死区更直观,但两者行为不同,不要混用。
把所有点位塞进一个订阅看似省事,但任何一个超慢或高频的监控项都会拖慢整批发布节奏,排错时也难定位。