最近使用uwsgi出了1些問(wèn)題,因而測(cè)試下Gunicorn測(cè)試對(duì)照下
測(cè)試命令
利用啟動(dòng)參數(shù)
數(shù)字含義:總時(shí)間 qps 毛病數(shù)
默許模式worker: 27.5s,364,0; 26.3s,261,0
異步模式worker:31.9s,312,0; 31s,314,0
默許模式: 已降落到 不到10的qps
異步模式: 依然可以和之前的速度相當(dāng) 300qps左右
Gunicorn設(shè)計(jì) 對(duì)使用同步還是異步worker,使用多少worker都有詳細(xì)的建議
數(shù)字含義:總時(shí)間,qps,毛病
默許模式: 26s, 385,0;26.2s, 380, 0
異步模式: 26.8s, 373, 0; 25.9s, 385, 0
默許模式:109s,9,0; 103s,9.6,0
異步模式:104s, 9.6,0; 106s, 9.2,0 #基本跟同步模式?jīng)]啥區(qū)分
uWSGI文檔async說(shuō)明 開(kāi)頭給出了1個(gè)正告:如果你的app不是時(shí)間驅(qū)動(dòng)的話,使用這類(lèi)模式是不對(duì)的。說(shuō)白了,uwsgi的事件模式其實(shí)對(duì)應(yīng)的是后真?zhèn)€事件框架,例如用gevent選項(xiàng),后端是gevent才有效,如果后端是django,其實(shí)怎樣配置沒(méi)有多大區(qū)分,并沒(méi)有對(duì)django的wsgi做了異步操作。
在響應(yīng)時(shí)間較短的利用中,uWSGI+django是個(gè)不錯(cuò)的組合(測(cè)試的結(jié)果來(lái)看有略微那末1點(diǎn)優(yōu)勢(shì)),但是如果有部份阻塞要求 Gunicorn+gevent+django有非常好的效力, 如果阻塞要求比較多的話,還是用tornado重寫(xiě)吧。