mod_wsgi:应用组/进程组/进程/线程的简明对比问询
mod_wsgi 执行上下文核心概念速览
层级关系(从宏观到微观)
进程组 → 进程 → 线程;应用组是绑定到进程/进程组的应用逻辑集合。
各概念核心说明
进程组(Process Group)
- 一组独立运行的mod_wsgi守护进程的集合,有唯一标识名。
- 核心作用:隔离不同应用或同一应用的实例,防止跨应用的资源冲突、崩溃扩散。
- 配置示例:
WSGIDaemonProcess myapp processes=2 threads=4
进程(Process)
- 进程组内的单个操作系统进程,每个进程拥有独立的Python解释器实例。
- 核心作用:利用多核CPU并行处理请求,单个进程崩溃不影响同组其他进程。
- 数量由
WSGIDaemonProcess的processes参数控制。
线程(Thread)
- 进程内的轻量级执行单元,共享所在进程的内存空间(包括Python解释器、应用代码、全局变量)。
- 核心作用:在单个进程内并发处理请求,降低进程创建开销,适合IO密集型应用。
- 数量由
WSGIDaemonProcess的threads参数控制。
应用组(Application Group)
- 一个或多个WSGI应用的逻辑分组,会被分配到指定进程/进程组运行。
- 核心作用:要么让多个应用共享同一进程上下文(比如共享数据库连接池),要么强制不同应用完全隔离。
- 配置示例:
WSGIApplicationGroup myapp-group,再绑定到对应的进程组。
典型部署场景
- 单应用常规部署:创建一个进程组,进程数对应CPU核心数,线程数根据IO密集程度调整(比如IO多设8-16),将应用组绑定到该进程组。
- 多应用隔离部署:为每个应用单独创建进程组,避免一个应用的错误拖垮其他应用。
- 多应用资源共享:将多个关联应用放到同一应用组,绑定到同一进程组,共享内存和资源以提升效率。
内容的提问来源于stack exchange,提问作者Nathan Wailes
相关产品推荐
相关产品推荐

