V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
dumbbell5kg
V2EX  ›  程序员

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

  •  
  •   dumbbell5kg · Jul 8, 2024 · 1678 views
    This topic created in 669 days ago, the information mentioned may be changed or developed.

    先谢过大佬了

    问题 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 (不知道这条信息有没有用)

    5 replies    2024-07-08 15:10:24 +08:00
    lsk569937453
        1
    lsk569937453  
       Jul 8, 2024
    1.多换一下压测工具试试吧,jemeter,hey( https://github.com/rakyll/hey)啥的。
    2.我自己压测的 nginx 的 TPS 大概是 4w5(由于压测工具限制,应该还能更高),Nginx 的容器配置是 4 核 8G 。nginx 配置在这 https://github.com/lsk569937453/silverwind/blob/main/benchmarks/nginx/nginx.conf
    压测的目标服务就是一个 http echo server.
    lolizeppelin
        2
    lolizeppelin  
       Jul 8, 2024
    master 进程不提供服务..
    master 进程是个保活服务,子进程生命周期管理,重载配置,滚动日志文件都是他
    你看 master 进程权限是 root 就应该知道,root 是不能也不应该干业务活的
    lolizeppelin
        3
    lolizeppelin  
       Jul 8, 2024   ❤️ 1
    哦,我理解错了...
    你的问题是 tcp.....
    问题是子进程可以直接监听 master 的 tcp 文件描述符的-。-
    master 不需要转交....
    archxm
        4
    archxm  
       Jul 8, 2024
    @lolizeppelin 还能多个进程监听一个 tcp ?
    archxm
        5
    archxm  
       Jul 8, 2024
    搜到一篇文章,还真可以
    https://blog.csdn.net/L13763338360/article/details/106519027
    原来以前看到的惊群问题,就是在这里
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5895 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 06:34 · PVG 14:34 · LAX 23:34 · JFK 02:34
    ♥ Do have faith in what you're doing.