0
根據以下... supervisord需要大量的CPU。主管正在管理我的uWSGI應用程序。這看起來不是很多嗎?我怎樣才能減輕這種負擔?我可以更改+1嗎?主管在8核心機器上佔用20%-30%的CPU時間
1 [||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 76.6%] 5 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 85.4%]
2 [||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 85.4%] 6 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 87.2%]
3 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 82.2%] 7 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 72.8%]
4 [||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||95.3%] 8 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 77.3%]
Mem[||||||||||||||||||||||| 1558/16050MB] Tasks: 57, 15 thr; 12 running
Swp[ 0/7627MB] Load average: 8.75 8.08 7.21
Uptime: 01:51:59
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
29617 root 20 0 491M 144M 2604 R 84.0 0.9 1:13.48 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
29615 root 20 0 421M 146M 2616 R 84.0 0.9 1:13.79 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
29337 root 20 0 444M 169M 2644 R 83.0 1.1 1:31.70 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
29613 root 20 0 423M 148M 2624 R 82.0 0.9 1:16.76 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
29333 root 20 0 591M 172M 2604 R 82.0 1.1 1:35.10 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
29474 root 20 0 428M 153M 2600 R 81.0 1.0 1:20.31 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
29611 root 20 0 429M 154M 2616 R 80.0 1.0 1:20.54 /usr/local/bin/uwsgi --loop gevent --carbon 103.4.112.50:2003 --socket 127.0.0.1:8060 --processes 7 --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/works
24760 root 20 0 49932 12520 1744 R 33.0 0.1 26:05.37 /usr/bin/python /usr/local/bin/supervisord
Supervisord配置:
# -*- conf -*-
[include]
files = *.supervisor
[supervisord]
pidfile = /var/run/supervisord.pid
nodaemon=false
[supervisorctl]
serverurl=unix:///var/run/supervisord.sock ; use a unix:// URL for a unix socket
[unix_http_server]
file = /var/run/supervisord.sock
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:uwsgiBidder]
autostart=true
autorestart=true
process_name = uwsgiBidder-%(process_num)s
<% if @enviroment=='production' -%>
command = /usr/local/bin/uwsgi --loop gevent --carbon <%[email protected]_ip_address%>:2003 --socket 127.0.0.1:8060 --processes <%= @bidder_cores %> --pp /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/ --wsgi-file /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/uwsgiBidderServer.py -b 62768 --master --async 2000 --enable-threads --listen 2048 --reload-on-rss 1200 --touch-reload /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbUwsgiBidderServer/uwsgiBidderServer.py
<% end -%>
numprocs = 1
numprocs_start = 8060
stopsignal=QUIT
#user=www-data
#--uid www-data
這裏是iotop的輸出
> Total DISK READ: 0.00 B/s | Total DISK WRITE: 27.46 K/s
> TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
> 280 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.27 %
> [jbd2/dm-1-8] 24760 be/4 root 0.00 B/s 388.30 K/s 0.00 %
> 0.00 % python /usr/local/bin/supervisord
> 1 be/4 roo
你能否包含你的'supervisord'配置?另外,'supervisord'使用'select'調用,內核通知一個新的I/O進程;如果你的'uwsgi'進程產生大量的輸出(主要是日誌輸出),那麼'supervisord'會被喚醒很多來處理這些輸出。這並不一定意味着它做得太多。 –
我有4個這樣的服務器。他們正在做6K qps。我將推薦包含supervisord.conf文件。 – Tampa
我也加了iotop的輸出。我只注意到我遺漏了uwsgi上的禁用日誌記錄。我顯然不希望記錄 – Tampa