某nginx+php fcgi服务器优化记录

上一篇 / 下一篇  2008-05-23 00:11:31 / 个人分类:LAMP

服务器梳理及优化记录木铎校园 BBS 社区H7`r"hC,ng
木铎校园 BBS 社区;M\g@wMDZ

3v}\!v_1OS0    
*oo Y nH AR0通过apachetop发现两台服务器负载不均: A 280-295/s木铎校园 BBS 社区|3w:V8o |9tlLn
                                                                            B 310-320/s木铎校园 BBS 社区9E;R^:`OJF-MD
       
$B;R*iI g$]T0       
C)[P U~cH0一、初步优化:木铎校园 BBS 社区I!B?[l$@ |K(M
        nginx:keepalive=0木铎校园 BBS 社区/eyS/S,yj!b
        系统: net.ipv4.tcp_max_tw_buckets = 5000       木铎校园 BBS 社区6W}*s+J3a,h!a7x$H&i
       
$ZD2j8kI#LCw0        系统情况变化情况:木铎校园 BBS 社区4b;R)I!Py3u+|s-z
        1. [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                         木铎校园 BBS 社区Vs CTMY/S3Q
           0> netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'
`6LrM9L0       LAST_ACK 19                                                     
Z-so `e v6p.?c0       LISTEN 7                                                        木铎校园 BBS 社区4}/ZptJV C t
       SYN_RECV 76                                                     
lU suw9e6B0       ESTABLISHED 3781                                                木铎校园 BBS 社区U,G#C xp~%c
       established) 1                                                  
b[%g[ i+r0       FIN_WAIT1 129                                                   
s'R;T:r.TjNS0       FIN_WAIT2 4876                                                  木铎校园 BBS 社区:@ PH!jA4N
       Foreign 1                                                       
@X8_0a*y2u0       CLOSING 3                                                       木铎校园 BBS 社区0h$X.{ e^cQ
       TIME_WAIT 6098     
+O_ OJfy(S(?i-q9S0      木铎校园 BBS 社区K({H9YX
                        PM    totsck    tcpsck    udpsck    rawsck   ip-frag      木铎校园 BBS 社区;jus A1m
          4:50:01 PM      4306      9331         3         0         0木铎校园 BBS 社区%`1d} W} Q~
          05:00:01 PM      4030      8968         3         0         0                                       木铎校园 BBS 社区te*l@Z@,L
       05:10:01 PM      3988      8596         3         0         0
8E[/UR/S F [d0                                                
gJqL|v3A0       Cpu(s): 21.2% us,  2.8% sy,  0.0% ni, 75.8% id,  0.2% wa,  0.0% hi,  0.0% si        木铎校园 BBS 社区CQ*mBX;s Z;e;eP
     
M fTD"P,}p0      修改后变化:木铎校园 BBS 社区8^3w |8tU7@8L
          0> !net                                                       木铎校园 BBS 社区?%H2h)Ya
        netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'木铎校园 BBS 社区XW*Tk,A#@W0]Q v"D$X4k
        LAST_ACK 2                                                   木铎校园 BBS 社区/?ux&T;Ds8~
        LISTEN 7                                                     木铎校园 BBS 社区mC6K6o6b;Re?-us
        SYN_RECV 75                                                  
[gZ-e~j)P0Y0        ESTABLISHED 217                                              木铎校园 BBS 社区bn,v(M Iqa ]?
        established) 1                                               
u#b)j} q0        FIN_WAIT1 80                                                 木铎校园 BBS 社区4yQ1h,K5[v/g)^Z^
        FIN_WAIT2 162                                                
1gH&pRX:_0        Foreign 1                                                    
(r2e#N]8E? k.h0        CLOSING 56                                                   木铎校园 BBS 社区P7N8H.Z I?
        TIME_WAIT 5014              
{R ]KI%i0       木铎校园 BBS 社区5P l"z8?#ew
        03:00:01 PM    totsck    tcpsck    udpsck    rawsck   ip-frag                                木铎校园 BBS 社区ZYIJ-Y
        05:00:01 PM      4030      8968         3         0         0
(j*Q4^`|0        05:10:01 PM      3988      8596         3         0         0
]S8}s!Qz0        05:20:01 PM        47      1865         3         0         0木铎校园 BBS 社区G_P's.|Oj/{,?sE
        05:30:01 PM       410      2548         3         0         0木铎校园 BBS 社区G gUA^
        05:40:01 PM       400      1388         3         0         0木铎校园 BBS 社区L%ys{B^b
        05:50:01 PM       401       499         3         0         0木铎校园 BBS 社区+G b_H!iU8cuW5y.|
        06:00:01 PM       407       507         3         0         0木铎校园 BBS 社区aB]$~u j3B+}-h
       木铎校园 BBS 社区{Z0ac4s(b
        2.2% syCpu(s): 17.3% u,  0.0% ni, 80.3% id,  0.2% wa,  0.0% hi,  0.0% si木铎校园 BBS 社区9g"n |-B2y-_a
       木铎校园 BBS 社区%yyXBx
      结果:负载降低5%左右。
mE{HU+sj1n{0      原则:apachetop显示的每秒处理请求数与连接数相差不多,连接数更少一些(由后面ab测试结果得知每次请求消耗的时间小于1s,established的数量严重大于ngxin正在处理的量,是不合理的)木铎校园 BBS 社区,N|#by#x*G_^B5le
     木铎校园 BBS 社区!k _2BV/NY
二、性能测试及深入优化       木铎校园 BBS 社区k$Vfa F&]%JS
        ab 测试:
~z F gc&_0        [root@xx_xx_API_37_43  <37.43>]: ~                                             木铎校园 BBS 社区!ixF0T R_u,K(sA
    130> ab -n 100000 -c 200   http://xx.xx.37.42/myblog/xxxxxxxwd_image.php     
@DQF7~Z0    This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3           
I_n3x1^0    Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/木铎校园 BBS 社区 S;L2D0[J/w
    Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/  
oc(F3Oe0                                                                           木铎校园 BBS 社区-McA)y#Yj'AzY_
    Benchmarking xx.xx.37.42 (be patient)                                      
[wcgz1v I]0    Completed 10000 requests                                                   
.Y4B f8L} w0    Completed 20000 requests                                                   木铎校园 BBS 社区9\j.D&ogHd
    Completed 30000 requests                                                   
icPsk"[0    Completed 40000 requests                                                   
Ob,y7Tb0    Completed 50000 requests                                                   
` j+_m ^"H*@.o0    Completed 60000 requests                                                   木铎校园 BBS 社区g5f(J?J&n5m~;y5b
    Completed 70000 requests                                                   
xx6Q+FPE0    Completed 80000 requests                                                   木铎校园 BBS 社区)rY!f^hz^
    Completed 90000 requests                                                   
-x lOXt0    Finished 100000 requests                                                   木铎校园 BBS 社区UC%G ?O V
    Server Software:        nginx/0.5.35                                       
u)Di@%j%b0    Server Hostname:        xx.xx.37.42                                        木铎校园 BBS 社区+s-y J5FfY
    Server Port:            80                                                 木铎校园 BBS 社区!K+P.G9i9mC
                                                                           木铎校园 BBS 社区yVlM"stS
    Document Path:          /myblog/xxxxxxxwd_image.php                          
eZ0G~_k|0    Document Length:        575 bytes                                          木铎校园 BBS 社区[.K3GouO p:nh B
                                                                           木铎校园 BBS 社区 ~ JR1Gxz
    Concurrency Level:      200                                                木铎校园 BBS 社区f t Y1PGSv yK2m
    Time taken for tests:   129.500 seconds                                    木铎校园 BBS 社区 [ w Ia[%a4yqF
    Complete requests:      100000                                             木铎校园 BBS 社区*]7}r%A8^F
    Failed requests:        97359                                              
?-ee!a-mSn0|0       (Connect: 0, Length: 97359, Exceptions: 0)                              木铎校园 BBS 社区LGtJnL U k
    Broken pipe errors:     0                                                  
o"biGB#ll/As0    Total transferred:      82307953 bytes                                     木铎校园 BBS 社区Ntb!BKl%l
    HTML transferred:       57107953 bytes                                     木铎校园 BBS 社区 Wl ] U&?i&}:b,@
    Requests per second:    772.20 [#/sec] (mean)                              
!L)WAdN[$l0    Time per request:       259.00 [ms] (mean)                                 木铎校园 BBS 社区t&F x1M.w9dF,Y
    Time per request:       1.29 [ms] (mean, across all concurrent requests)   
5H R9\:S j5I0    Transfer rate:          635.58 [Kbytes/sec] received                       木铎校园 BBS 社区8L{t#`&v
                                                                           
^XG?Kd0`t$@(B o0    Connnection Times (ms)                                                     
!w"P3wCC c,{0                  min  mean[+/-sd] median   max                                
r b4['c-V W'Wdg0    Connect:        1   124   29.3    117  3142                                木铎校园 BBS 社区*Ob0K,j ]$[$Z;L
    Processing:    29   135   17.7    129   775                                
4DGm_%P;d(e]0    Waiting:       28   134   17.7    128   775                                木铎校园 BBS 社区.\P{?v5mg[
    Total:         29   259   39.0    243  3305                                
)y dN\ }2D:DT0                                                                           
3h2Mt3v6M:s:PA{h0    Percentage of the requests served within a certain time (ms)               木铎校园 BBS 社区&vu A+Hr'B!|,VS.i
      50%    243                                                               木铎校园 BBS 社区9J)Z4dCV(F
      66%    274                                                               
/Ii-ba_6kS2g6t0      75%    290                                                               
/T)V6KLF-U0      80%    295                                                               
&B8U |k]3d(t kMd^K%j0      90%    305                                                               木铎校园 BBS 社区\(_\^ G!P2q'GG7}
      95%    310                                                               
+T%pP0u xq:l7Z0      98%    315                                                               
4A&ca[%F\Yp*?0      99%    318                                                               
2l{"@$Az-[/WN0     100%   3305 (last request)                                                木铎校园 BBS 社区6U(w3wr._
    木铎校园 BBS 社区8SR+v-k'p(xE"~
     cpu性能:                                                                         
jCXv/F?0     Cpu(s): 50.4% us,  6.6% sy,  0.0% ni, 42.9% id,  0.2% wa,  0.0% hi,  0.0% si木铎校园 BBS 社区:R/~rS#np/sh __-E7k
    木铎校园 BBS 社区9~UCEeU
     分析:
7A5S J4Bv0A0     如上面数据:
vi9s[ |1[p:M:l0             ab每秒增加700多个请求(正常业务带来200-340,测试当时为250左右),apachetop显示每秒正确处理(返回code 200)400-480个
{%mgXa"i0             请求的失败率为10%左右。
/Bb!^N^^#G&]&RTH0            
NLw'T3TVo0             即:在业务请求每秒达到900-1000的时候,apachetop显示的正确处理个数为400-480,错误处理(非200)数量增加
9t B{9a3W{|0K0       问题存在:                                                                                         
PM9k0S\UX4Q1g0           1,后端的处理能力                                                                                 木铎校园 BBS 社区%H:k2d7R%Y(t:E2i+T
           2,fcgi的处理能力(进程数量)                                                                     木铎校园 BBS 社区uM0o&B6i"Q(y0e
                       目前通过top显示每个php进程设定了5532 k byte的内存,使用了3824 (不到4M),                    木铎校园 BBS 社区 aU s(nCuKW
                       php.ini 中 memory_limit = 8M        
%R^Y:u3K,BW0              木铎校园 BBS 社区 f$t!pP$q)~t|9fM? Y
     调整:
'N7]\*U.LbW0             修改 php fcgi 的worker 为 200后测试情况:                                                                                                                                                                                                                            
k ~1A8I"m&]!n0            0> ab -n 100000 -c 200   http://xx.xx.37.42/myblog/xxxxxxxwd_image.php                                                                                             木铎校园 BBS 社区r'yD9AG cmY
          This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3                                                                                        
#J,g&a;_6}0          Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/                                                                            木铎校园 BBS 社区_"f QY:m1pnx/U"F
          Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/                                                                               
~4D,u u6fbN X*q$]0                                                                                                                                                                  
&K[ O-Xr.d4xE0          Benchmarking xx.xx.37.42 (be patient)                                                                                                                   
:a+Ya5Z*G%T6RW0          Completed 10000 requests                                                                                                                                
H(d)e b"m^sd0          Completed 20000 requests                                                                                                                                木铎校园 BBS 社区b'O7Ri ^#H+|._
          Completed 30000 requests                                                                                                                                木铎校园 BBS 社区,V?T XC
          Completed 40000 requests                                                                                                                                
Ej#Ovz;ti!i1l[0          Completed 50000 requests                                                                                                                                
b5R'rBw4B0          Completed 60000 requests                                                                                                                                木铎校园 BBS 社区U&c7N(T$@6`9]
          Completed 70000 requests                                                                                                                                木铎校园 BBS 社区8]6K%jS;rU
          Completed 80000 requests                                                                                                                                
:?1N E;V0zyuh7YF0          Completed 90000 requests                                                                                                                                
Z(A#jOmQ#X-@$_i0          Finished 100000 requests                                                                                                                                木铎校园 BBS 社区9Dx%j0H J5Hq
          Server Software:        nginx/0.5.35                                                                                                                    木铎校园 BBS 社区[x#u6I m0s
          Server Hostname:        xx.xx.37.42                                                                                                                     
$Yyd7v ix ~0          Server Port:            80                                                                                                                              木铎校园 BBS 社区 Ihkt+c2h
                                                                                                                                                                  木铎校园 BBS 社区,\3k` R/x(C hO&K
          Document Path:          /myblog/xxxxxxxwd_image.php                                                                                                       木铎校园 BBS 社区3EDKD5J
          Document Length:        545 bytes                                                                                                                       
mFz4R&B0                                                                                                                                                                  
#j[i!SEC$~0          Concurrency Level:      200                                                                                                                             
"R V?$K"?0          Time taken for tests:   129.350 seconds                                                                                                                 木铎校园 BBS 社区-bxfz }
          Complete requests:      100000                                                                                                                          木铎校园 BBS 社区S eT't q
          Failed requests:        99415                                                                                                                           
V${2z&T9LNW,Lh0             (Connect: 0, Length: 99415, Exceptions: 0)                                                                                                           
`m:]8MwR0          Broken pipe errors:     0                                                                                                                               木铎校园 BBS 社区L$N)S%S Q G6MF,i
          Total transferred:      82315072 bytes                                                                                                                  
Tct!N!k(_0          HTML transferred:       57115072 bytes                                                                                                                  
PP+@hj9C0          Requests per second:    773.10 [#/sec] (mean)                                                                                                           
? i+p"@'Qu;_Q\0          Time per request:       258.70 [ms] (mean)                                                                                                              木铎校园 BBS 社区F^*Xg^
          Time per request:       1.29 [ms] (mean, across all concurrent requests)                                                                                木铎校园 BBS 社区tU8{F5vpU
          Transfer rate:          636.37 [Kbytes/sec] received                                                                                                    
*ng U6@n#O3RVX0                                                                                                                                                                  
QMc%V.U}jP0          Connnection Times (ms)                                                                                                                                  
*^&j%qz\cI0                        min  mean[+/-sd] median   max                                                                                                             木铎校园 BBS 社区(H2u5i)Fp3H}
          Connect:        0   125  106.5    117  3049                                                                                                             
7{"NS.{,D'R:\0          Processing:    19   133   21.0    128   513                                                                                                             木铎校园 BBS 社区bs_0W0B;jR
          Waiting:       18   132   21.0    128   513                                                                                                             
A^/Nr]J&}(HM+Va0          Total:         19   258  111.2    244  3271                                                                                                             
,O c`$KB0f!X#Y0                                                                                                                                                                  
x(~#A _%O&Co*IB6Q*c0          Percentage of the requests served within a certain time (ms)                                                                                            木铎校园 BBS 社区 |9m,B7KNv,w4n:E
            50%    244                                                                                                                                            
q4{0w K+rUp5_0            66%    272                                                                                                                                            木铎校园 BBS 社区 a1?xg8[1m4z
            75%    288                                                                                                                                            
/I6Y6A2|%h!QYZ;@m0            80%    293                                                                                                                                            木铎校园 BBS 社区 g2~2lHN%IM8u^
            90%    303                                                                                                                                            
/W)H1v6zef0            95%    309                                                                                                                                            木铎校园 BBS 社区7L1coU"XM gFv+h
            98%    313                                                                                                                                            
B n})[~)I R0            99%    317                                                                                                                                            木铎校园 BBS 社区n,xH jKC
           100%   3271 (last request)                                                                                                                             木铎校园 BBS 社区'G\s e"Q A
                                                                                                                                                                  
L(_if `6W;I+X0                                                                                                                                                                  
K8u"I_zZik0                                                                                                                                                                  
5A*RSx^.kt:vm0           [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                        木铎校园 BBS 社区n `;q:x;L
           0> top                                                                                                                                                 
Hr%UH~'j0           top - 14:24:52 up 132 days, 23:10,  5 users,  load average: 6.80, 3.60, 2.37                                                                           
f I'yn:lQ"AX0           Tasks: 325 total,  16 running, 308 sleeping,   1 stopped,   0 zombie                                                                                   木铎校园 BBS 社区*j#qA }#O6?
           Cpu(s): 54.9% us,  7.9% sy,  0.0% ni, 37.0% id,  0.1% wa,  0.0% hi,  0.0% si                                                                           
5O1jbW7M;k?6h R0           Mem:   4144692k total,  2994984k used,  1149708k free,   188240k buffers                                                                               木铎校园 BBS 社区r1i}'H&yd Kb
           Swap:  2096440k total,      160k used,  2096280k free,  2341820k cached  
(l N;|)VHy q@K!F0          
4B/O:_s5C0         分析:
o&r hK)I m!U~#e0             分析:apachetop显示并发处理的正常的请求数为800-900(此时所有的请求数大约是900-1000),是跟据php 进程数量进行了线性的增长                                                                             
QAUwo)y/Dy0t0                    得出结论:此次调整合适,php cgi的进程数量可再调高,ab测试的并发数可再提高一些。                               木铎校园 BBS 社区xz:gB3Y?Y
                   木铎校园 BBS 社区2?4BK.V ~j#e V ?
                调整:将php cgi的进程数增加到300(php共使用内存1.5G),增大ab测试的并发数量                                                                                                                                                                            
W"pW!OB OK cP0             [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                              
Ue:O9qp,xquo0             0> logs/apachetop -f logs/blog.xxx.com.cn-access_log                                                                                                        木铎校园 BBS 社区&X9\!jn.IO)kx
             2xx: 1s)   6:31:52%) 3xx:  0.0/s0 ( 0.0%) 4xx:     0 ( 025%) 5xx:     0 ( 0.053                                                                              
eT-_3U:g;z0                         25374       1015.0              19.8M7.8 809.2K          816.4                                                                                   木铎校园 BBS 社区^c+N,i+\o;g9L D
                    25363 (100.0%) 3xx:       0 ( 0.0%) 4xx:    11                                                                                                        
YvdWurU0                 2553746     1006.7   915.0              19.8M7.8 809.2K          816.4                                                                                   
-PB QA.T^0             25367 1014.7 20225  803xx:blog/c 0 ( 0.0%) 4xx:    11                                                                                                        木铎校园 BBS 社区4qw a#Qxb
                                                                                                                                                                          
g;NP*FH[}1U+H0             [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                              木铎校园 BBS 社区!E6e|n2c3yG
             0> logs/apachetop -f logs/blog.xxx.com.cn-access_log                                                                                                        木铎校园 BBS 社区;S(k{d-L xd|
             2xx: 1s)   6:34:58%) 3xx:  0.0/s0 ( 0.0%) 4xx:     0 (2:50%) 5xx:     0 ( 04:59                                                                              木铎校园 BBS 社区7Mc7ThE
                        187738       1104.3             146.31.20 811.2K          817.1                                                                                   木铎校园 BBS 社区%V.^'jWc)m*|]L
                   187678 (100.0%) 3xx:       1 ( 0.0%) 4xx:    59                                                                                                        木铎校园 BBS 社区+u PC](V0C8s y
                 3031919  3408018.1   113.6              26.087.9 898.6K          817.1                                                                                   木铎校园 BBS 社区;n]6hFjSF.H:F.F0S
             33132 110404 26440  88*/myblog/ch0ckwd_image.php    4                                                                                                        木铎校园 BBS 社区"|CP1` [G,EPz
                                                                                                                                                                          
4P[}vRtBA0             增加ab并发请求 1000(1100 失败)                                                                                                                             木铎校园 BBS 社区(B:~I6D+t%mb1X qT
             [root@xxx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                              
/D^3v |D0z v&Fm0             130> top                                                                                                                                                     木铎校园 BBS 社区$WXwXnV([
             top - 14:42:53 up 132 days, 23:28,  5 users,  load average: 7.51, 8.14, 6.23                                                                                 木铎校园 BBS 社区D"E ^o.sSZC]r0}
             Tasks: 382 total,  13 running, 368 sleeping,   1 stopped,   0 zombie                                                                                         木铎校园 BBS 社区$L#z0w^+z3r j!GH
             Cpu(s): 55.5% us,  7.6% sy,  0.0% ni, 36.6% id,  0.2% wa,  0.0% hi,  0.0% si                                                                                 
p'c:~hh(R7C7|0             Mem:   4144692k total,  3244744k used,   899948k free,   188852k buffers                                                                                     木铎校园 BBS 社区+RTk4LM/r9n%yS%eI
             Swap:  2096440k total,      160k used,  2096280k free,  2495908k cached                                                                                      
7|'K;?*al.O7I;I\#p*t0                                                                                                                                                                          
$yF-i| SA3n6\6D0             0> logs/apachetop -f logs/blog.xxx.com.cn-access_log                                                                                                        
(u1y"{ dY `K@0             2xx: 1s)   6:44:33%) 3xx:  0.0/s0 ( 0.0%) 4xx:     0 (1:10%) 5xx:     0 ( 04:34                                                                              木铎校园 BBS 社区)?!b bfU D5t
               &