• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回服务器栏目

101 - uwsgi - 配置 - 模式配置

作者:

贺及楼

成为作者

更新日期:2024-05-08 12:42:44

https://www.bookstack.cn/read/uwsgi-docs-2.0-zh/10968bff8b1ff094.md#cheaper-busyness-max
好文章

uwsgi模式

大致命令 模式名 英文名 解释
--spooler-harakiri <n> option 后台处理程序任务设置剖腹模式 spooler任务设置harakiri模式
--mule-harakiri <n> 越境进程设置剖腹模式 mule进程设置harakiri模式
cgi-mode web端模式 cgi模式 响应将不再是HTTP可用的响应,而是cgi响应(会增加Status:这个请求头)
emperor 君主模式 Emperor模式
emperor-tyrant 君主模式的暴君模式 emperor的tyrant模式
君主模式开启血领主模式 emperor开启bloodlord模式
收割机模式 reaper模式 没处理一个请求,服务器就会调用waitpid(-1)来清除所有的僵尸进程。 如果你在你的app中生成了子进程,结束后又成为了很多僵尸进程,那么你可以开启这个选项。 但遇到这种情况你更应该修复你这种子进程的使用方式(如果可以的话)
async 异步模式 async
--cheaper <n> 最少模式 cheap模式 启动的时候只分配n个工作进程

详细配置

log一般不用uwsgi,用supervisor

  1. http = :8000 # 对外提供 http 服务的端口
  2. socket = 127.0.0.1:8001 #the local unix socket file than commnuincate to Nginx 用于和 nginx 进行数据交互的端口
  3. chdir =/home/opadm/mms_webserver/src # the base directory (full path) django 程序的主目录
  4. master = true
  5. #启动主进程,来管理其他进程,其它的uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程。
  6. wsgi-file =src/wsgi.py # Django's wsgi file
  7. processes = 100 # maximum number of worker processes
  8. threads = 10 #thread numbers startched in each worker process
  9. cheaper = 10 #一个高阶的cheap模式,在启动的时候只会分配n个工作进程,并使用自适应算法启动新的进程,必须小于上面的processes数量
  10. idle = 3600 #在经过sec秒的不活跃状态的进程会被销毁(进入了cheap模式),并最少保留cheaper指定的进程数
  11. stats = 127.0.0.1:9000 #monitor uwsgi status 通过该端口可以监控 uwsgi 的负载情况,看下一篇uwsgitop
  12. harakiri = 60 #设置一个请求的超时时间(秒),如果一个请求超过了这个时间,则请求被丢弃
  13. harakiri-verbose = true#当一个请求被harakiri杀掉会,会输出一条日志
  14. memory-report = true #开启内存使用情况报告
  15. reload-mercy = 10 #设置平滑的重启(直到处理完接收到的请求)的长等待时间(秒)
  16. reload-on-as= 1024 #设置工作进程使用虚拟内存超过N MB就回收重启
  17. reload-on-rss=100#设置工作进程使用物理内存超过N MB就回收重启
  18. auto-procname = true #自动给进程命名
  19. # 为进程指定前缀
  20. procname-prefix = 你的程序的进程的名字,可以用xxx_
  21. procname-prefix-spaced = 你的程序的进程的名字,可以用xxx_
  22. max-requests=500000 #设置工作进程每处理N个进程就会被回收重启
  23. socket-timeout=10 #设置socket超时时间,默认4秒
  24. limit-post=4096 #限制http请求体的大小(Bytes)
  25. vacuum = true # clear environment on exit
  26. disable-logging = true #不记录request日志,只记录错误日志
  27. #log-syslog = true#将日志打印到syslog上
  28. daemonize = /home/opadm/log/uwsgi.log# 后台运行,并输出日志
  29. stats=./uwsgi.status

reload-on-as reload-on-rss配置方法

  1. 命令:
  2. ps aux | grep 你的进程名
  3. ps -ef | grep 你的进程名
  4. 观看情况,设定你大概的内存,详细命令内容看:
  5. Linux - 基本命令 - ps aux - 看进程
  6. Linux - 基本命令 - ps -ef - 看进程