Uvicorn指定--workers 1仍运行多线程的问题咨询
Uvicorn指定--workers 1仍运行多线程的问题咨询
大家好,我最近在部署FastAPI应用的时候遇到了一个困惑,想过来请教下各位:
我先是把Docker Desktop配置成了仅使用单核心CPU,进入容器后用nproc命令验证,确实是单核心:
root@e2bb2ef7dfcc:/app# nproc 1
之后我用--workers 1参数启动我的FastAPI应用,启动命令和进程查看结果如下:
root@e2bb2ef7dfcc:/app# uvicorn fastapi_blocking:app --host 0.0.0.0 --port 8000 --workers 1
root@e2bb2ef7dfcc:/app# ps -ef | grep uvicorn root 1 0 0 12:31 ? 00:00:01 /venv/bin/python3 /venv/bin/uvicorn fastapi_blocking:app --host 0.0.0.0 --port 8000 --workers 1
本来以为这样就会以单进程单线程运行了,但用pstree查看进程树的时候,发现主Uvicorn进程下面还挂着多个线程:
root@e2bb2ef7dfcc:/app# pstree -p -t uvicorn(1)-+-{uvicorn}(6) |-{uvicorn}(7) |-{uvicorn}(8) `-{uvicorn}(9)
我有点搞不懂,明明指定了--workers 1,容器也是单核心CPU,为什么Uvicorn还会启动多个线程?有没有办法让它真正以单线程单进程的模式运行呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

