Intel QAT技术在数据安全处理和网络连接场景下的性能验证
Intel QAT技术在数据安全处理和网络连接场景下的性能验证
随着互联网应用的不断发展,数据安全和网络性能成为企业关注的重点。Intel的QAT(Quick Assist Technology)技术通过硬件加速,为数据安全处理和网络连接提供了高效的解决方案。本文在浪潮信息服务器操作系统云峦KeyarchOS环境下,对QAT技术在OpenSSL和Nginx中的应用进行了详细的性能验证。
背景
TLS协议作为互联网安全的主要传输协议,虽然给用户带来了更高的安全性,但也带来了更多的性能开销。随着应用程序的复杂性不断提高和用户流量的不断增长,软件层面的优化已经很难满足需求。
为了解决上述问题,Intel提出了QAT(Intel® Quick Assist Technology)硬件加速方案。该方案使用专用硬件来加速压缩等操作,并向用户提供了OpenSSL第三方插件,形成了TLS异步加速的完整解决方案。
QAT技术在数据安全处理中的应用
QAT Engine是QAT技术中的核心模块,主要作为应用程序和硬件之间的中间层,负责“数据安全处理操作的输入输出数据”在应用程序与硬件之间进行传递。同时,QAT Engine作为OpenSSL的第三方插件提供给用户。
基于此,本文对OpenSSL使用QAT前后进行了数据安全处理计算性能测试对比。测试结果表明,在使用QAT的情况下,OpenSSL单位时间内能够执行的签名操作数量提升约18倍,OpenSSL库在单位时间内能够执行的验证操作数量提升了3倍左右,同时OpenSSL对CPU的占用率下降了约50%。
QAT技术在网络加速中的应用
Nginx作为一款性能优越、稳定可靠的Web服务器,常被用于构建高性能的网站和应用。然而,随着用户访问量的增加和设计复杂性的提升,传统的软件部署方式可能无法满足需求。我们可以利用QAT加速Nginx应用,从而提升性能和安全性。Intel提供了Nginx的补丁,支持Nginx使用OpenSSL的异步模式,可通过调用OpenSSL的接口加速网络连接。
测试场景1:Nginx进程数量不变,客户端线程数量改变
客户端不同并发线程数量(5、10、20、25)对Nginx服务器发起请求,保持1000个HTTPS网络连接,Nginx的worker_processes参数配置为4,测试不同情况下使用QAT前后Nginx性能对比:
测试结果:从图中可以看出,使用QAT后Nginx服务器Request/sec提升至少为3倍。
测试场景2:客户端20并发线程 Nginx进程数量改变
客户端线程设置为20,保持1000个HTTPS网络连接,对使用QAT前后,不同worker_processes配置(1、2、3、4)的Nginx进行网络性能对比测试:
测试结果:对于不同的work_process配置,使用QAT技术后,Nginx的网络吞吐量有明显提升,且CPU占用率在使用QAT时有明显降低。
测试场景3:客户端10并发线程 Nginx进程数量改变
客户端线程设置为10,保持1000个HTTPS网络连接,对使用QAT前后,不同worker_processes配置(1、2、3、4)的Nginx进行网络性能对比测试:
测试结果:Nginx在使用QAT后,网络吞吐量最高能提升约6倍左右,相同CPU占用率的条件下,使用QAT能够显著提升Nginx的网络性能。
总结
在数据安全处理场景中,QAT对于数据安全处理计算任务的速度提升十分明显,并且通过将计算任务卸载到硬件加速卡中,可以释放大量CPU计算资源。
在网络连接应用场景中,使用QAT加速能够保证Nginx服务器的性能保持稳定,在线程数较低时,使用QAT加速Nginx能最大限度的调用cpu性能来保证Nginx的网络连接性能,而不使用QAT加速会导致Nginx实际调用cpu达不到预定的工作进程数,实际性能会远低于预期。