Project

General

Profile

Bug #3184

Updated by pengfei xu about 1 year ago



FEP-HA使用sysload将semodel.db的转发相关信息写入redis中(包括使用的转发服务号)
在fep-ha中 使用putayc等命令将采集到的值更新到转发数据中(此时将值放到redis的对应转发key-value中,再将变化的点号放到一个变化队列中list),转发相关程序从队列获取已经变化的点号,获取对应的值转发同时删除队列的点号;

场景
如果转发服务没有启动没有处理队列,那么在redis中队列会无限增加,有可能撑爆redis;
所以在em_daq中会对相关队列进行限制,当队列到达一定数据量时,删减老的队列数据,保证队列的长度限制;

现在的问题:
em_daq维护队列是根据redis的转发服务号来依次维护相关队列;
但是sysload只是将启用的(flag=1(启用),type=2(转发))转发服务写入redis;
如果semodel.db配置了相关采集-转发,但转发的服务没有启用,那么会出现 em_daq未守护相关服务号的变化数据队列,导致redis内存一直增加;

修改方案:
sysload 将所有配置的转发服务号都写入redis中,保证em_daq可以守护所有数据队列

影响:
影响所有fep-ha使用sysload的版本;


Back