Intel异步模式Nginx中SSL握手失败与性能优化问题分析

Intel异步模式Nginx中SSL握手失败与性能优化问题分析

asynch_mode_nginx asynch_mode_nginx 项目地址: https://gitcode.com/gh_mirrors/as/asynch_mode_nginx

问题背景

在使用Intel异步模式Nginx(asynch_mode_nginx)结合QAT加速卡进行HTTPS性能测试时,遇到了两个关键问题:

  1. 当Nginx的worker_processes数量超过QAT驱动配置的NumProcesses值时,会出现SSL握手失败
  2. 当worker_processes增加到4个以上时,性能提升出现瓶颈

问题现象分析

SSL握手失败问题

测试环境配置:

  • Nginx worker_processes设置为32
  • QAT驱动配置中NumProcesses设置为16
  • 使用TLS 1.3协议和X25519椭圆曲线

错误日志显示:

ADF_UIO_PROXY: icp_adf_userProcessToStart: Failed to start SHIM
QAT HW initialization Failed.
SSL_do_handshake() failed (SSL: error:800B30C3:lib(128):qat_hw_init:icp sal userstart fail)

性能瓶颈问题

测试TLS 1.2 ECDHE-X25519-RSA时的性能表现:

  • 1 worker: 5k CPS
  • 2 workers: 10k CPS
  • 3 workers: 15k CPS
  • 4 workers: 17k CPS
  • 8 workers: 17k CPS

技术原理分析

QAT资源分配机制

Intel QAT加速卡通过驱动配置文件(c6xx_dev0.conf)中的NumProcesses参数控制可同时使用的进程数量。当Nginx的worker进程数超过此限制时,额外的worker进程将无法成功初始化QAT硬件加速功能,导致SSL握手失败。

性能瓶颈原因

性能在worker_processes=4时达到瓶颈,主要可能原因包括:

  1. 设备资源争用:QAT加速卡的物理计算单元有限
  2. 进程亲和性设置:默认配置中LimitDevAccess=1限制了进程对设备的访问
  3. 中断处理瓶颈:过多的worker进程可能导致中断处理效率下降

解决方案

配置优化建议

  1. 匹配进程数量

    • 确保nginx.conf中的worker_processes不超过c6xx_dev0.conf中的NumProcesses值
    • 或者增加NumProcesses值以支持更多worker进程
  2. 禁用进程亲和性限制: 修改c6xx_dev0.conf:

    LimitDevAccess = 0
    

    此设置允许用户空间进程使用所有可用的QAT逻辑实例,实现更好的负载均衡

  3. 性能调优建议

    • 对于4核以上系统,建议设置worker_processes等于CPU核心数
    • 适当增加CyNumConcurrentSymRequests和CyNumConcurrentAsymRequests值
    • 考虑使用SO_REUSEPORT套接字选项改善连接分配

最佳实践配置示例

QAT驱动配置(c6xx_dev0.conf)

[SHIM]
NumberCyInstances = 1
NumberDcInstances = 0
NumProcesses = 32  # 匹配或超过nginx worker数量
LimitDevAccess = 0  # 禁用亲和性限制

Nginx配置优化

worker_processes auto;  # 自动匹配CPU核心数
worker_cpu_affinity auto;

ssl_engine {
    use_engine qatengine;
    qat_engine {
        qat_offload_mode async;
        qat_poll_mode heuristic;
    }
}

总结

asynch_mode_nginx asynch_mode_nginx 项目地址: https://gitcode.com/gh_mirrors/as/asynch_mode_nginx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裘超恺Belle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值