gpt4 book ai didi

multithreading - WSGI的线程和进程怎么统计?

转载 作者:行者123 更新时间:2023-12-03 12:47:02 25 4
gpt4 key购买 nike

我已经在 apache 上部署了一个 wsgi 应用程序,我是这样配置的:WSGIDaemonProcess wsgi-pcapi user=group=processes=2 threads=15

在我重新启动 apache 后,我正在计算线程数:ps-efL |搜索引擎优化 | grep -c httpd

本地 apache 只运行一个 wsgi 应用程序,但我得到的数字是 36,我不明白为什么。我知道有 2 个进程和 15 个线程,这意味着:15*2+2=32那为什么我还有 4 个呢?

最佳答案

你的意思是为什么每个 mod_wsgi 守护进程有 3 个额外的进程。

对于您的配置,将创建 15 个新线程来处理请求。进程中的其他 3 个是由于:

  1. 进程启动的主线程。它将等待直到收到适当的信号以关闭进程。
  2. 一个监控线程,用于检查某些事件的发生并发出进程关闭的信号。
  3. 一个死锁线程,它检查 Python 解释器中是否发生了死锁。如果确实发生,它将发送一个事件,线程 (2) 将检测到该事件。线程 (2) 然后将向进程发送信号以退出。该信号将由线程 (1) 检测到,然后线程 (1) 将优雅地退出进程并尝试正确清理。

所以额外的线程都是为了确保整个系统在可能发生的各种情况下非常健壮。此外,确保在关闭进程时正确销毁 Python 子解释器,以允许运行 atexit 注册的 Python 代码以进行自己的清理。

关于multithreading - WSGI的线程和进程怎么统计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16479249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com