主管在8核计算机上占用20%-30%的CPU时间

时间:2012-11-06 09:21:35

标签: uwsgi supervisord

根据以下内容...... supervisord占用了大量的cpu。主管正在管理我的uWSGI应用程序。这看起来不是很多吗?怎样才能减轻这种负担?我可以将nice更改为+1吗?

 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 <%=@carbon_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

1 个答案:

答案 0 :(得分:1)

您需要关闭uwsgi请求记录(--disable-logging),或配置uwsgi以使用--logto或提供的UDP logging options在其他地方记录请求。

现在发生的事情是你的uwsgi进程正在他们的stdout上发送大量数据,因此内核正在大量唤醒你的supervisord进程来处理日志数据(通过select()调用)。使用6K qps,你真的希望有其他东西来处理这一数量的日志数据。