跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[程序员] 请教一下 NGINX 压测的问题:为什么压测 NGINX 的时候, master process 不消耗 cpu?


小天管理

已推荐帖子

先谢过大佬了

问题 1:为什么压测时,master process 不消耗 cpu ?

  • 我在虚拟机里部署了 NGINX
    在虚拟机上用 ab 来压测,将 NGINX 作为静态 HTTP 服务器
    压测命令:ab -n 100000 -c 4 http://localhost/
    压测过程持续 10 多秒

  • ab 用的不是长连接,所以我认为 master 作为监听 80 端口的进程,会不停收到建立 TCP 连接的请求,并把这些请求交给 worker 处理,worker 负责建立连接。

  • 我认为这个转交请求给 worker 的过程也应该消耗 CPU ,但是 top 命令只能看到 worker 消耗了 CPU ,master 一直是 0 CPU 没有动静

(有 8 个 worker 进程,我只监听了 1 个) 1720418509320.jpg

问题 2:8 核的虚拟机,为什么并发度 2 就压到上限了?

  • 压测时我看 worker 进程开了 8 个,

  • 而 ab 的并发度-c 参数到 2 的时候就到上限了( 2w QPS ),再增加并发度也不会提升 QPS 了,理论上来说不是应该到 8 (和 worker 数相近)的并发度才到 QPS 上限吗?

  • 原以为是单点的 master 进程到上限了,但是如问题 1 所述,master 却没有消耗 CPU

  • 另外给 ab 增加-k 参数,用长连接的方式来压测,可以到 5w QPS (不知道这条信息有没有用)

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...