跳转到内容
View in the app

A better way to browse. Learn more.

彼岸论坛

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[程序员] 请教一下 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 (不知道这条信息有没有用)

Featured Replies

没有可显示的帖子

创建帐户或登录来提出意见

Account

导航

搜索

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.