python学习

django 学习之路(四)uwsgi 运行之后产生多个进程

2019-09-25  本文已影响0人  二傻吧

问题描述

其实原因如下:

uwsgi 的配置:

[uwsgi]
socket= :8000  #内网也是可以的
chdir=/home/ljh/project/Hello
wsgi-file=Hello/wsgi.py
processes=4 #为我们的项目开启了4个可以并发的进程,可以很快的响应,但是比较耗内存
threads=2 #为每个进程开启了两个线程
master=True
pidfile=/usr/local/uwsgi/uwsgi.pid
daemonize=/usr/local/uwsgi/uwsgi.log

从上面的配置内容看到,相当于一次开了8个线程,这样的话,相当于uwsgi --ini /etc/uwsgi.ini 执行一次就产生4个进程,8个线程(但是事实好像不止8个,后面再详细看原因)

解决方法

step1. 降低配置

其实高配置真的对于这种自己玩的小服务器是不太合适的,首先我决定配置改低一点:

[uwsgi]
socket= :8000  #内网172.21.*.*:8000也是可以的 (*是被我隐藏了,这里填自己的内网就行)
chdir=/home/ljh/project/Hello
wsgi-file=Hello/wsgi.py
processes=2 #为我们的项目开启了2个可以并发的进程,可以很快的响应,但是比较耗内存
threads=2 #为每个进程开启了两个线程
master=True
pidfile=/usr/local/uwsgi/uwsgi.pid
daemonize=/usr/local/uwsgi/uwsgi.log

step1. 改进开启方式

每次打开uwsgi之后可能会忘了关,那么每次开启一个shell时,可以直接先运行下面的命令:

uwsgi --reload $uwpid 
#$uwpid是我把uwsgi的pid文件路径加进了~/.bashrc之后的变量名,这样方便后面用
#加入的方法是打开~/.bashrc然后再文件的后面追加一句export $uwpid="/usr/local/uwsgi/uwsgi.pid"
#然后 source ~/.bashrc就可以了

step2. uwsgi关闭和重启

uwsgi --reload $uwpid #重启
uwsgi --stop $uwpid #关闭,这样就不用一个个kill了
上一篇下一篇

猜你喜欢

热点阅读