You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

wrk压测下Nginx Worker进程CPU使用率未达100%的原因排查

Nginx压测CPU使用率无法突破70%的排查与分析

压测场景与异常现象

  • 压测工具:wrk
  • 初始压测命令:wrk -t1 -c40 -d50s http://127.0.0.1:80
  • 调整后压测命令:wrk -t10 -c400 -d50s http://127.0.0.1:80

无论调整wrk的线程数与并发连接数,通过top观测到Nginx Worker进程的CPU使用率始终无法突破70%。

已完成排查

  1. 阻塞推测验证:
    初步推测Worker进程因内核阻塞调用被调度,导致CPU无法跑满,但使用bcc的offcputime工具生成的offcpu火焰图显示,50秒压测周期内目标进程仅出现1ms的offcpu事件,与理论预期的15秒(30%*50秒)严重不符。
  2. 工具有效性确认:
    已执行tar -xf ../clang+llvm-17.0.2-powerpc64-ibm-aix-7.2.tar.xz验证offcputime工具工作正常。

后续排查方向

  • 软中断瓶颈检查:执行cat /proc/softirqs观测网络软中断处理情况,若软中断占用过高,会抢占Worker进程的CPU时间,导致其无法跑满。
  • Nginx配置验证:确认worker_processes是否与CPU核心数匹配,worker_connections是否足够,是否存在limit_conn、limit_req等限流配置限制请求处理。
  • 系统资源瓶颈排查:通过vmstat、iostat检查磁盘IO、内存使用情况,若存在IO瓶颈,可能间接导致进程无法高效利用CPU。
  • 客户端瓶颈验证:确认wrk客户端自身是否耗尽资源(如客户端CPU、本地端口数),无法发起更多请求,导致Nginx无足够负载。
  • 内核参数检查:查看TCP相关参数(如tcp_max_syn_backlog、somaxconn)是否存在限制,导致请求无法及时被Nginx接收处理。

内容的提问来源于stack exchange,提问作者zwy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 15:00:16