[alibaba/tengine]使用qat加速时,不开启异步模式,Tengine的CPU使用率跟不用qat一样,性能没有提升

2023-12-21 577 views
1
Ⅰ. Issue Description

使用qat加速时,不开启异步模式,Tengine的CPU使用率跟不用qat一样,性能没有提升。我的理解是只要使用qat硬件加速,不管同步异步模式,握手的RSA计算都应该有硬件加速卡计算,不会占用CPU的资源,CPU的负载应该比不使用QAT硬件加速时低呀

Ⅱ. Describe what happened

1、测试环境 1)服务端环境,Tengine作为作为LB,挂载三个后端实例 OS: CentOS7.6(3.10.0-957.21.3.el7.x86_64) Tengine环境 ./sbin/nginx -V Tengine version: Tengine/2.3.2 nginx version: nginx/1.17.3 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) built with OpenSSL 1.1.1c 28 May 2019 TLS SNI support enabled configure arguments: --prefix=/mypath/srv/tengine-2.3.2 --with-http_ssl_module --with-openssl-async --with-cc-opt='-DNGX_SECURE_MEM -I/mypath/srv/openssl/include -Wno-error=deprecated-declarations' --with-ld-opt='-Wl,-rpath=/mypath/srv/openssl/lib -L/mypath/srv/openssl/lib'

开启10个进程:worker_processes 10;

OpenSSL-1.1.1c

QAT环境 qat1.7.l.4.7.0-00006 https://github.com/intel/QAT_Engine.git 编译时安装是成功的 service qat_service status Checking status of all devices. There is 1 QAT acceleration device(s) in the system: qat_dev0 - type: dh895xcc, inst_id: 0, node_id: 0, bsf: 0000:13:00.0, #accel: 6 #engines: 12 state: up

2)测试端 CentOS6.6 测试脚本 for((i=0;i<25;i++)) do ab -n 10000 -c 50 https://mydomain/ > logs/$i.txt& done

2、测试三种情况 1)没有使用qat硬件加速卡 service qat_service stop 将配置中关闭ssl_engine,关闭ssl_async

ssl_engine qat; ssl_async on;

2)使用qat,但是不开启异步模式 service qat_service start ssl_engine qat;

ssl_async on;

3)使用qat,开启异步模式 service qat_service start ssl_engine qat; ssl_async on;

从测试数据来看,第一种场景(不使用qat)和第二种场景(使用qat,但是不开启异步模式),CPU的使用率一样呀,我的理解是只要使用qat卡,不管同步异步模式,握手的RSA计算都应该有硬件加速卡计算,不会占用CPU的资源,CPU的负载应该比不使用QAT硬件加速时低呀,但是从测试的数据来看不是这样。 第三种情况(开启异步模式),CPU使用率可以节约50%,这个数据可以说的过去。 请问Tengine的同学,在使用qat时是否对比测试过这三种场景,结果是怎样的?

回答

3

noqat-tengine-top 不使用qat的top

6

qat-tengine-sync-top 使用qat,但是不适用异步

6

qat-tengine-async-top qat,异步模式top

4

@lizj3624 同步模式下Tengine需要去polling QAT里面的处理数据,所以在QAT处理数据的这段时间,相当于没有把CPU让出去做其它的事情。

0

@lizj3624 你好,请问部署qat卡和tengine是参照tengine官网部署的吗?官网里面qat 驱动下载链接打不开。请给我个驱动吧。

5

非常感谢!我们安装好tengine了。主要是因为openssl.cnf 主需要配置tengine官网写的配置参数,其他参数都要删除掉。 另外,我们用wrk测试发现,tengine 48子进程在开启ssl 异步模式下配合qat卡,只能压到每个worker 进程占CPU的50%左右。看perf 是qat engine 阻塞在poll 函数里了。怀疑是qat卡的瓶颈了。也不知道怎么看qat卡利用率。不知道您有没有好的建议。

企业微信截图_16268592611790