SODBASE运维----常见问题解决

来源:互联网 发布:合肥行知学校是重点吗 编辑:程序博客网 时间:2024/06/06 11:38

开发者社区活动,使用SODBASE产品的用户现在可以领礼品啦 

1. 停止自启动

一般来讲服务器重启后之前的规则模型会自动运行起来。如果不要模型自动运行,可以修改状态数据库中sys_cepmodel表的state值。

例如:

update cep.sys_cepmodel set state='stopped' where modelname='rule1';


2. 服务器启动报错或CEP任务自启动失败

如果原来运行好好的模型突然不能运行了,重启服务器后还是出错或失败。着重排查两种情况

(1)依赖的第三方系统出现了故障

首先先停止自启动,然后手动启动模型,查看模型启动时是否有错误。根据错误日志,进一步解决问题。

如果无法定位原因,可以将原来的sys_cepmodel表备份,然后

update cep.sys_cepmodel set state='stopped'

重启服务器,再逐个启动CEP任务,进行排查。

(2)localserveraddress的设置

每台worker上的global.properties配置文件中,localserveraddress需要配置为此worker的ip:port才能实现此服务器上任务的自启动

3. CEP Server版本升级

例:原版本是2.0.33,更新为2.0.35

(1)下载新版本,解压

unzip SODBASE-CEP-SERVER-2.0.35.zip

(2)保留原有配置文件和自定义jar包

cp SODBASE-CEP-SERVER-2.0.33/SODBASE-TOMCAT-7.0.56/webapps/sodbase-cep-server-webservice-1.0.1/configuration/* SODBASE-CEP-SERVER-2.0.35/SODBASE-TOMCAT-7.0.56/webapps/sodbase-cep-server-webservice-1.0.1/configuration/ 

cp SODBASE-CEP-SERVER-2.0.33/SODBASE-TOMCAT-7.0.56/webapps/sodbase-cep-server-webservice-1.0.1/externaljar/* SODBASE-CEP-SERVER-2.0.35/SODBASE-TOMCAT-7.0.56/webapps/sodbase-cep-server-webservice-1.0.1/externaljar/ 

4. 反压端口占用

设置反压端口时,建议先此端口  netstat -a -p 查看是否被占用

5. 内存溢出

(1)出现内存溢出(OOM)时,调小global.properties中的maxqueuelength参数。设置方法,例只有一条数据流,一个事件数据如果是2KB,能够使用的机器最大内存为8GB,则maxqueuelength的值不超过8G/2K=4000000。如果有10条数据流,则还需要建议maxqueuelength的值不超过8G/2K/10=400000。

注:如果确实无法估计一个事件数据的大小,可以通过jmap和jhat来看PrimitiveEvent在内存中一共占了多少字节(引用和基本类型加一起)。

(2)短时间数据输入速度爆发超过处理速度。如果这种情况是短时的,可以采用反压限流解决,一种方法是和warnqueuelength参数配合使用,当报警时反压限流,这时建议warnqueuelength的值不超过事件最大速率*反压休眠时间,且warnqueuelength不超过maxqueuelength。

(3)还有一种情况,是用户自定义适配器或函数中存在内存泄露

例如数据库连接池引用的资源没有及时释放等等。建议在做测试的时候,将JAVA的Xmx设置为一个较小值,并在OOM时导出profile文件,用分析jhat或MAT工具分析一般就可以定位原因。


6. 本机测试通过的程序在服务器上跑不出结果

优先考虑服务器环境使用的数据源数据量是否远大于测试时用的数据量大小,可以数据量逐步加压,确定问题所在。如果是,可采用负载均衡,或扩展分布式缓存(如redis)的方法来解决大数据量吞吐的问题,具体方法在前面的文章中都有介绍。


0 0
原创粉丝点击