OPC UA:由于加密导致性能下降


OPC UA 服务器和 OPC UA 客户端之间的通信现在可以加密这一事实也有缺点。

这会影响建立连接以及操作期间的功耗要求。

使用较弱的设备——Raspberry Pi 3——进行了测试,结果可以更清楚地看到。

UaExpert 用作 OPC UA 客户端。

测量是手动进行的,变量会周期性地改变它们的值(最坏的情况)。

建立通信

为 CODESYS 控制器创建服务器证书时,您可以确定加密的长度:

图1

创建证书时已经可以注意到时间差异。

根据密钥的长度,建立通信时可能会出现以下情况:

变量数/密钥长度 未加密 2048 3072 4096
1000个变量 ~1秒 ~6秒 ~16秒 ~25秒
2000个变量 ~2秒 ~8秒 ~18秒 ~26秒

根据客户端的不同,可能无法与控制器建立连接。 必须编辑 UaExpert 中的 ConnectionTimeout(默认设置:10 秒):

图2

建立连接时,设备正在满负荷运行。=> CPU 负载:~ 100%

图3

为了说明影响对设备的依赖程度,这里是从 OPC UA 客户端到 CODESYS Control Win V3 的连接。 对于 1000 个变量和 3072 位的密钥长度,这大约需要 1 秒:

图4

正常操作

即使在正常操作期间,加密也需要更多的计算能力,如下表所示:

变量数/密钥长度 未加密 2048 3072 4096
1000个变量 ~23% ~25% ~25% ~25%
2000个变量 ~35% ~39% ~40% ~40%