日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

什么是Gunicorn?Gunicorn(綠色獨(dú)角獸)是一個(gè)用于UNIX的Python WSGI HTTP服務(wù)器。這是從Ruby的Unicorn項(xiàng)目移植來的一個(gè)前fork工作器模型。Gunicorn服務(wù)器廣泛兼容各種web框架,并具有實(shí)現(xiàn)簡單,輕量級(jí),高性能等特點(diǎn)。它用來解析HTTP請(qǐng)求的網(wǎng)關(guān)服務(wù)。它通常是在進(jìn)行反向代理(如Nginx),或者進(jìn)行負(fù)載均衡(如 AWS ELB)和一個(gè)web 應(yīng)用(比如 Django 或者 Flask)之間。它的運(yùn)行模型基于pre-fork worker 模型,即就是支持eventlet,也支持greenletGunicorn服務(wù)器作為wsgi App的容器,能夠與各種 Web 框架兼容(flask,django 等,得益于gevent 等技術(shù),使用Gunicorn能夠在基本不改變wsgi app 代碼的前提下,大幅度提高 wsgi app的性能。目前Gunicorn最新版本為20.1.0,官方文檔地址:
https://docs.gunicorn.org/en/20.1.0/,如下圖:

高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

Gunicorn 20.1.0官方文檔

靜態(tài)資源可以使用nigix,動(dòng)態(tài)資源使用Gunicorn,結(jié)構(gòu)如下圖:

高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

nigix+Gunicorn結(jié)構(gòu)

與uWSGI的性能比較,Gunicorn性能表現(xiàn)突出,如下圖:

高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

與uWSGI的性能比較

Gunicorn特點(diǎn):

1.本身支持WSGI、web2py、Django和Paster,能和大多數(shù)的Python Web框架兼容

2.自動(dòng)輔助進(jìn)程管理

3.簡單的Python配置

4.允許配置多個(gè)工作環(huán)境

5.各種服務(wù)器的可擴(kuò)展鉤子

6.兼容Python 3。 x > = 3.5

7.簡單易上手,輕量級(jí)的資源消耗

不過目前gunicorn只能運(yùn)行在linux環(huán)境中,不支持windows平臺(tái)。

Python自帶的有個(gè)web服務(wù)器:wsgiref,Python是單進(jìn)程的語言,當(dāng)進(jìn)程阻塞時(shí),后續(xù)請(qǐng)求將排隊(duì)處理,因此在生產(chǎn)環(huán)境不會(huì)使用單進(jìn)程的Web服務(wù)器。Gunicorn的優(yōu)勢在于,它使用了pre-fork worker模式,也就意味著有一個(gè)中心管理進(jìn)程(master process)用來管理worker進(jìn)程集合。Master從不知道任何關(guān)于客戶端的信息。所有的請(qǐng)求和響應(yīng)處理都是由worker進(jìn)程來處理的。Master(管理者)主程序是一個(gè)簡單的循環(huán),監(jiān)聽各種信號(hào)以及相應(yīng)的響應(yīng)進(jìn)程。master 管理著正在運(yùn)行的 worker 集合,通過監(jiān)聽各種信號(hào)比如TTIN,TTOU,and CHLD. TTIN and TTOU 響應(yīng)的增加和減少worker的數(shù)目。CHLD信號(hào)表明一個(gè)子進(jìn)程已經(jīng)結(jié)束了,在這種情況下master會(huì)自動(dòng)地重啟失敗的 worker。gunicorn在啟動(dòng)時(shí),會(huì)在主進(jìn)程中預(yù)先fork出指定數(shù)量的worker進(jìn)程來處理請(qǐng)求,gunicorn依靠操作系統(tǒng)來提供負(fù)載均衡,推進(jìn)的worker數(shù)量是(2*核數(shù))+1,比如2核的CPU,則worker數(shù)量為2*2+1=5

注:master進(jìn)程不是管理處理請(qǐng)求的,只負(fù)責(zé)管理worker進(jìn)程,比如對(duì)worker進(jìn)程的創(chuàng)建、銷毀、以及根據(jù)負(fù)載情況增減。(啟動(dòng)時(shí)設(shè)置的–workers參數(shù)只是worker數(shù),而gunicorn還會(huì)創(chuàng)建個(gè)master進(jìn)程。所以,即使配置workers為1,你的app也至少有兩個(gè)進(jìn)程:master負(fù)責(zé)管理,worker負(fù)責(zé)處理請(qǐng)求)。

對(duì)于Gunicorn來說,gunicorn是WSGI的實(shí)現(xiàn),但同時(shí)也自帶web server,能直接對(duì)外提供web服務(wù)。包括大部分的web app框架,比如Flask和Django也都帶有web server。但是,在生產(chǎn)環(huán)境中,一般它們都是各司其職的,Web框架Flask、Django只用于寫app、Gunicorn只用于運(yùn)行和管理Python web app,而在它們有專門的web server,比如Nginx

Gunicorn支持多種worker_class工作模式,默認(rèn)使用sync,具體如下:

1.sync:同步的工作模式, 性能最差

2.eventlet: 協(xié)程的工作模式

3.gevent: 協(xié)程的工作模式

4.tornado:基于tornado

5.gthread: 多線程模式 利用線程池管理連接

6.gaiohttp:基于aiohttp

安裝Gunicorn,前提需要安裝好Python:

pip install gunicorn

執(zhí)行:gunicorn -h,執(zhí)行成功如下圖:

高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

gunicorn執(zhí)行成功

查看gunicorn的版本如下:

pip show gunicorn
高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

查看gunicorn的版本

如果想讓Gunicorn支持異步workers的話,需要安裝一下三個(gè)python包:

pip install greenlet
pip install eventlet
pip install gevent

Apache Superset是一個(gè)開源的、現(xiàn)代的、輕量級(jí)BI分析工具,能夠?qū)佣喾N數(shù)據(jù)源、擁有豐富的圖標(biāo)展示形式、支持自定義儀表盤,且擁有友好的用戶界面,十分易用。具體可以參考我之前寫的幾篇關(guān)于Superset的文章:

1.《一個(gè)開源免費(fèi)高顏值的輕量級(jí)商業(yè)智能BI平臺(tái)Superset 介紹》

2.《開源自助商業(yè)分析BI工具SuperSet 1.3.2快速入門(以CSV文件數(shù)據(jù))》

3.《開源輕量級(jí)BI平臺(tái)Superset的SQL編輯器使用指南》

4.《解決開源輕量級(jí)BI平臺(tái)SuperSet連接SAP Hana數(shù)據(jù)庫的方案》

5.《開源輕量級(jí)BI平臺(tái)的Superset的數(shù)據(jù)集使用指南》

在開發(fā)或測試環(huán)境下,我們可以用Superset自帶的運(yùn)行命令:

superset run -h 0.0.0.0 -p 8089

采用此種方式會(huì)有一個(gè)提示,此方式為非生產(chǎn)環(huán)境的部署,如下圖:

* Environment: production

WARNING: This is a development server. Do not use it in a production deployment.

Use a production WSGI server instead.

高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

Superset自帶運(yùn)行方式

Superset官方建議生產(chǎn)環(huán)境默認(rèn)用gunicorn,gunicorn運(yùn)行superset如下:

gunicorn -w 5 -k gevent --timeout 120 -b  0.0.0.0:8089 --limit-request-line 0 --limit-request-field_size 0 "superset.app:create_app()"  --log-level info --access-logfile logfile.log --log-file error.log --daemon 
高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

gunicorn運(yùn)行superset

--workers:指定進(jìn)程個(gè)數(shù)

--timeout:worker進(jìn)程超時(shí)時(shí)間,超時(shí)會(huì)自動(dòng)重啟

--bind:綁定本機(jī)地址,即為Superset訪問地址

--limit_request_line:http request line最大字節(jié)數(shù)。值范圍0-8190, 0表示無限制


--limit_request_field_size:http request header字段最大字節(jié)數(shù)。0表示無限制

--worker_class:worker進(jìn)程的工作方式。 有 sync, eventlet, gevent, tornado, gthread, 缺省值sync

--worker_connections:客戶端最大同時(shí)連接數(shù)。只適用于eventlet, gevent工作方式

--daemon:后臺(tái)運(yùn)行,如果處于調(diào)試階段建議不加

--error-logfile:輸出日志

高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

運(yùn)行superset成功


高性能的Web服務(wù)器Gunicorn 20.1配置Superset 1.4

登錄superset成功

gunicorn詳細(xì)配置可參考官網(wǎng)文檔:
https://docs.gunicorn.org/en/20.1.0/settings.html,這里就不一一介紹了。

分享到:
標(biāo)簽:Gunicorn
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定