superset二次開發-部署後的性能優化

本篇主要講三件事:

1、以守護線程的方式運行superset

2、採納官方文檔的建議,用協程處理請求,減少等待時間

3、負載均衡+壓縮js文件。

各位看官可按需閱讀,三件事情並不互相影響。

一、以守護線程的方式運行superset

文件:superset/cli.py

改動:runserver方法,在DEBUG模式的代碼里,為gunicorn添加一個daemon的參數。

--daemon # daemonn

啟動:用命令行,和官方的一模一樣

superset runservern

停止:用命令行

lsof -n -P| grep :8088 //找到進程nkill 進程號n

代碼截圖:

二、用協程處理請求

2.1 安裝gevent(我使用的是1.2.2版本)

pip install geventn

2.2 添加gevent參數

文件:superset/cli.py

改動:runserver方法,在DEBUG模式的代碼里,為gunicorn添加一個gevent的參數。

-k gevent # asyncn

2.3 啟動和官方一模一樣

superset runservern

代碼截圖:

效果截圖:

請求的阻礙時間大大減少

官方文檔截圖:

三、負載均衡+壓縮js文件

一段廢話:此操作因為要各種調試,不熟練的話請慎重評估時間,但是一旦配置妥當,好處也是很明顯的,比如你的js文件從6、7mb壓縮到了2mb。

3.1 自行安裝nginx

3.2 修改nginx.conf文件

nginx.conf代碼:

user nginx;nworker_processes 1;nnerror_log /var/log/nginx/error.log warn;npid /var/run/nginx.pid;nnnevents {n worker_connections 1024;n}nnnhttp {n include /etc/nginx/mime.types;n default_type application/octet-stream;nn log_format main $remote_addr - $remote_user [$time_local] "$request" n $status $body_bytes_sent "$http_referer" n "$http_user_agent" "$http_x_forwarded_for";nn access_log /var/log/nginx/access.log main;nn sendfile on;n #tcp_nopush on;nn keepalive_timeout 65;nn// 壓縮文件部分n ## Gzip Settings n #n gzip on;n gzip_min_length 1000;n gzip_buffers 4 8k;n gzip_http_version 1.0;n gzip_disable "msie6";n gzip_types text/plain text/css application/json application/javascript application/x-javasc ript text/xml application/xml application/xml+rss text/javascript;n gzip_vary on;nnn// 負載均衡部分n upstream erm {n server 0.0.0.0:0000; // 寫自己的伺服器IP和埠n server 0.0.0.0:0000; // 寫自己的伺服器IP和埠n }nn server {n listen 8088;n server_name _;n charset utf-8;n location / {n root html;n index index.html index.htm;n proxy_pass http://erm;n proxy_set_header X-Real-IP $remote_addr;n client_max_body_size 100m;n }nnn location ~ ^/(WEB-INF)/ {n deny all;n }nn error_page 500 502 503 504 /50x.html;n location = /50x.html {n root /var/www/html/;n }n }n}n

截圖:

壓縮後content-encoding會顯示格式為gzip


推薦閱讀:

Three.js 入門與掃盲-基礎結構,坐標系與幾何類型介紹
這張非常漂亮的餅圖怎麼畫出來的?
我乎《竇唯目前在幹什麼》引發的熱浪後分析
pyecharts + Jupyter Notebook 數據可視化,還要啥 PPT?
當我們發一個emoji,我們到底在發什麼?|英語言國家emoji調查(來源:highspeedinternet.com)

TAG:数据可视化 | 二次开发 |