OPCUA Server性能测试——KEPServerEX6.4
1 测试环境
1.1 Server运行环境:
1.2 Server版本: KEPServerEX6.4
1.3 Client版本:
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>stack-client</artifactId>
<version>0.3.3</version>
</dependency>
1.4 安全策略: none
2 测试方法与结果
2.1 采集频率1Hz,client等待server数据响应超时设置为5秒。
OpcUaClientConfig.setRequestTimeout(uint(5000))
1、1个服务器端点(opc.tcp://192.168.5.xxx:49320),采集1万double测点,使用quartz定时每秒采集一次,使用的指令为:
client.readValues(0.0, TimestampsToReturn.Both, nodeIds);
客户端可正常获取数据,在server上建立的客户端连接个数为3个
服务器性能如图:
2、2个服务器端点,两个client分别1万double测点,则几乎90%以上采集结果受影响,报下面的错误:
No pending request with requestId=23860 for ReadResponse
服务器性能如图:
2.2采集频率1Hz,client等待server数据响应超时设置为20秒。
OpcUaClientConfig.setRequestTimeout(uint(20000))
2个服务器端点,两个client分别1万double测点,则几乎60%以上采集结果受影响,server所在服务器CPU占用70%左右。
3 结论
OPCUA客户端以1Hz总召的方式进行采集会给服务端造成过高负荷,导致服务端CPU占用过高及数据响应延时过高。应采用订阅模式作为主要的数据采集方式。