环境信息
操作系统:CentOS Linux release 7.4.1708 (Core)
机器配置:8c 16g
规则信息
写了个简单个规则DRL文件,此规则对应我们业务场景的数据转发流程,非常有代表性。就是对数据进行账户、产品key、是否属于某个标签的过滤,脚本如下:
场景一 数据转发,1000规则,匹配100万次。
java -Dcom.sun.management.jmxremote.port=20217 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.30.xxx.yyy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. -jar drools-test.jar getForwardRules 10 1000000
通过jvisualvm.exe来监控相关资源使用情况:
场景二 数据转发,2000规则,匹配100万次。
场景三 数据转发,5000规则,匹配10万次。
场景四数据转发,10000规则,匹配10万次。
1万规则512M内存已经不够用,需要配置为1G。
java -Dcom.sun.management.jmxremote.port=20217 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.30.127.85 -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. -jar drools-test.jar getForwardRules 100 100000