鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

使用OpenSSL对vKAE进行性能测试

在客户端上,以RSA加解密算法为例,使用OpenSSL工具对vKAE进行详细的性能测试,涵盖原生Nginx的同步与异步模式,以及使能vKAE结合Nginx的同步与异步模式,并对测试结果进行详细分析,得出结论与应用建议。

测试命令介绍

以4C8G规格的虚拟机为例,在虚拟机中执行四组OpenSSL性能测试,分别针对原生Nginx的同步和异步模式,以及使能vKAE结合Nginx的同步与异步模式。

各组的测试命令如下:

  • Nginx同步模式。
    numactl -C 0 openssl speed -elapsed -multi 1 rsa2048
  • Nginx异步模式。
    numactl -C 0 openssl speed -elapsed -multi 1 -async_jobs 4 rsa2048
  • 使能vKAE + Nginx同步模式。
    OPENSSL_CONF=/home/openssl.cnf numactl -C 0 openssl speed -engine kae -elapsed -multi 1 rsa2048
  • 使能vKAE + Nginx异步模式。
    OPENSSL_CONF=/home/openssl.cnf numactl -C 0 openssl speed -engine kae -elapsed -multi 1 -async_jobs 4 rsa2048

以下参数请根据实际情况调整:

  • numactl -C 0:表示绑核编号为0的CPU核。
  • -m 0:表示绑核位置在NUMA node0。
  • -engine kae -elapsed:表示使用KAE进行加速。
  • -multi:表示并发线程数。1表示没有并行操作,即每次只执行一个操作。
  • -async_jobs:表示使用异步作业的数量。4表示将同时启动4个异步作业。

测试结果与分析

在4C8G虚拟机中使用openssl speed命令测试得到的RSA-sign结果如表1所示。

表1 测试结果

处理器型号

服务端线程数=1

服务端线程数=4

虚拟机规格

Nginx同步/异步

是否启用vKAE

鲲鹏920处理器

6374

12528

4C8G

同步

鲲鹏920处理器

15593

52514

4C8G

异步

鲲鹏920处理器

774

3100

4C8G

同步

鲲鹏920处理器

774

3096

4C8G

异步

在CPU利用率达到100%的情况下,得出以下结论:

  • vKAE加速效果:在4C8G规格的虚拟机中,vKAE硬件加速显著提升了性能。在vKAE加速达到瓶颈之前,对于异步模式,性能提升高达16倍;对于同步模式,也实现了3倍的性能提升。
  • 同步与异步模式比较:在OpenSSL场景下启用vKAE进行加速后,异步模式相比同步模式在性能上提升了4.2倍,显示出异步处理在高并发场景下的优势。未启用vKAE时,同步和异步模式的性能差异几乎无差异。
  • 硬软比分析:同步模式的硬软比约为4倍,而异步模式高达17倍,表明异步模式在利用硬件加速资源时更为高效。

    硬软比指硬件加速的算力和纯CPU软算(不使用KAE加速)的比值。

结论与应用建议

对于4C8G规格的虚拟机:

  • vKAE硬件加速的优势:在资源受限的虚拟机环境中,vKAE硬件加速是提升RSA签名性能的有效手段。
  • 异步模式的优势:对于需要处理大量并发请求的应用,推荐采用Nginx异步模式结合vKAE硬件加速,以获得最佳性能。
  • 在不同规格的虚拟机中,不同的服务端线程数的测试结果、趋势都存在差异,需要具体问题具体分析。但在Nginx应用场景中,对于Nginx服务端,在不超过64个核的绑定场景下,vKAE硬件加速RSA-sign的上限值约为54000sign/s,为实际部署提供了参考依据。