hand
_1_14_169
4
返回栏目
1k
2k
0.4k
0.6k
0.9k
0.7k
3k
2k
0.1k
1k
0k
1k
0k
0.4k
0.3k
0.1k
0.6k
0k
1k
3k
2k
0k
0k
0.4k
2k
1k
0k
6k
0.8k
1k
0.5k
2k
0k
0k
0k
2k
0k
4k
2k
1k
1k
2k
0k
0.5k
0k
1k
0.2k
0.3k
0.1k
0k
0k
0.8k
1k
0.6k
0k
0k
2k
0.6k
1k
2k
2k
0.6k
0.6k
0.5k
1k
2k
0.5k
0.1k
0.2k
4k
0k
0.1k
0.8k
1k
0.3k
0k
0.3k
0.1k
1k
8k
0.1k
0.7k
0.1k
0.3k
0.9k
0.2k
4k
0.2k
6k
3k
3k
1k
3k
0.1k
1k
0.2k
0k
0.7k
0.4k
2k
2k
0.5k
0.8k
5k
0.1k
0.3k
0.3k
0.5k
0.1k
1k
0k
0.7k
0.2k
2k
2k
1k
6k
3k
1k
2k
1k
2k
2k
1k
0k
0k
1k
0k
0k
0.3k
0.3k
0.2k
0k
0.3k
0k
1k
0.1k
0.6k
0k
0k
0k
0k
0k
0.1k
0k
0k
0k
0.2k
0k
0.2k
0k
0k
0k
0k
0k
0k
0k
0.9k
1k
2k
0.8k
0.4k
0k
0k
0k
0.5k
0k
0k
0k
0k
0.4k
0k
0k
0.1k
返回服务器栏目
作者:
贺及楼
成为作者
更新日期:2023-09-27 11:27:34
作用:可以开更多的python项目
https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html
pip install uwsgi
如果不可以:
apt-get install build-essential python3.x-dev
python3.x-dev自己改
作用:分配工作的人
https://uwsgi-docs.readthedocs.io/en/latest/Download.html
放到 /usr/local
cd /usr/local
tar zxvf uwsgi-2.0.18.tar.gz # 解压文件夹
cd uwsgi-2.0.18
make
baidu.ini放在与baidu.py同一个文件夹
[uwsgi]
socket =127.0.0.1:8000
pythonpath =/xxx/xxx/XXX/venv # 这里填python的虚拟环境
wsgi-file =/var/www/XXX/xxx/baidu.py
processes =4
threads =2
home = /var/www/XXX
master = true #启动主进程,来管理其他进程,其它的uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程。
callable =app
enable-threads=true # 允许程序内部启动多线程,为定时器
preload=true #用--preload启动uWSGI,确保scheduler只在loader的时候创建一次,为定时器
lazy-apps=true
max-requests =5000# 每个工作进程设置请求数的上限。当一个工作进程处理的请求数达到这个值,那么该工作进程就会被回收重用(重启)
reload-on-rss=500#设置工作进程使用物理内存超过N MB就回收重启
reload-on-as= 500#设置工作进程使用虚拟内存超过N MB就回收重启
#python-autoreload=1#这是自动重启,有新文件替换可以自动重启,上线后就要取消掉
命令:lscpu
Architecture: i686 #架构686
CPU(s): 2 #逻辑cpu颗数是2
Thread(s) per core: 1 #每个核心线程数是1
Core(s) per socket: 2 #每个cpu插槽核数/每颗物理cpu核数是2
CPU socket(s): 1 #cpu插槽数是1
Vendor ID: GenuineIntel #cpu厂商ID是GenuineIntel
CPU family: 6 #cpu系列是6
Model: 23 #型号23
Stepping: 10 #步进是10
CPU MHz: 800.000 #cpu主频是800MHz
Virtualization: VT-x #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item/5d8e0488def3a998a5c272c0.html)
L1d cache: 32K #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache: 32K #一级缓存32K(具体为L1指令缓存为32K)
L2 cache: 3072K #二级缓存3072K
服务器有2个实物cpu,每个cpu有8个核心,每个核心虚出(超线程数)2个逻辑cpu,所以一共有32个cpu
2*8*2 = 32
processes = 32
128G内存
每个cpu平均分配到的内存为4G,系统占用2GB空间,用户占用2GB空间
那么根据linux的默认进程和线程大小计算:
默认一个进程的堆栈大小是2GB
默认一个线程的堆栈大小是1MB
所以一个进程可以开2G/1M=2048个线程,但实际上内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小,一般情况会达到1500个线程。
threads = 1500
阿哈,我1核1g,只可以开processes=4,threads=4,threads=30会点一下就蹦一个processes,就直接502
服务器
整章节共174节
快分享给你的小伙伴吧 ~