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

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

服务器梳理及优化记录
+]Bt-k f!V2Y-R y+[0木铎校园 BBS 社区.SV mk,D_1^9dX

}J*m6{i$Z}4q{0    
a6V+^0M-VB)`q)c2C0通过apachetop发现两台服务器负载不均: A 280-295/s
-x0s^8zBj0                                                                            B 310-320/s木铎校园 BBS 社区/Qb^ T ?w7^uN
       
w[ GovD;ew0       
xoY)z4{(?WS0一、初步优化:
;C c?|"@0        nginx:keepalive=0木铎校园 BBS 社区/El H4i{ b R
        系统: net.ipv4.tcp_max_tw_buckets = 5000       木铎校园 BBS 社区w;vU~\9cJ"i!g
       木铎校园 BBS 社区 xpU)B9i
        系统情况变化情况:
` d:S,_z0        1. [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                         
9Q[2\[SJCQ0           0> netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'木铎校园 BBS 社区$A7|Ll#MF.q3q
       LAST_ACK 19                                                     
tFl5G+Gd0       LISTEN 7                                                        
)H+SKAd R2_U\0       SYN_RECV 76                                                     
U`:a%y&ax0       ESTABLISHED 3781                                                
N+D2ts%O7d0       established) 1                                                  
L/h,M4J;U`*O@3?0       FIN_WAIT1 129                                                   
jV~[b.KbW0       FIN_WAIT2 4876                                                  木铎校园 BBS 社区*h)n_W4H+q;[
       Foreign 1                                                       木铎校园 BBS 社区u#BMM7Q8nm
       CLOSING 3                                                       木铎校园 BBS 社区:mD)H3i(B#N
       TIME_WAIT 6098     
Sh"q7k n5g0      木铎校园 BBS 社区4SYsv+O B'g~u
                        PM    totsck    tcpsck    udpsck    rawsck   ip-frag      
4_dX_2E[ P+X%N0          4:50:01 PM      4306      9331         3         0         0木铎校园 BBS 社区rWK$t-Kf
          05:00:01 PM      4030      8968         3         0         0                                       
.O#|__+pa0       05:10:01 PM      3988      8596         3         0         0
a'i3_CNq e0                                                
"V+bhya3H ^%vwy0       Cpu(s): 21.2% us,  2.8% sy,  0.0% ni, 75.8% id,  0.2% wa,  0.0% hi,  0.0% si        
Axgp)s;mCH0     
!dt~c Yd#c#eQ7W,l0      修改后变化:
FW6U$m|/z+Vh0          0> !net                                                       
.frr@+d0T0        netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'
L!e&JU8Q'wN-L0        LAST_ACK 2                                                   
3q2KYl)uhY0        LISTEN 7                                                     
X3N+ul FC:f-x j-n0        SYN_RECV 75                                                  木铎校园 BBS 社区 Xp*lm \5X
        ESTABLISHED 217                                              木铎校园 BBS 社区/`8m+Q"SPq CY
        established) 1                                               
%Yd yGOJ3QH7\G0        FIN_WAIT1 80                                                 木铎校园 BBS 社区;T6W'[5T)fF!J
        FIN_WAIT2 162                                                木铎校园 BBS 社区!K)S%}j(} K}B7`
        Foreign 1                                                    木铎校园 BBS 社区!Q[!H,l-^hJ
        CLOSING 56                                                   木铎校园 BBS 社区(R"bQ)Md`(u{
        TIME_WAIT 5014              木铎校园 BBS 社区6ib7~%I(RLzA
       
-LP5?5yS%dz{0        03:00:01 PM    totsck    tcpsck    udpsck    rawsck   ip-frag                                木铎校园 BBS 社区[ha-N$}h]{.^'@
        05:00:01 PM      4030      8968         3         0         0木铎校园 BBS 社区a6] wt3NEA%l
        05:10:01 PM      3988      8596         3         0         0木铎校园 BBS 社区D~ ce@-Q3W?
        05:20:01 PM        47      1865         3         0         0
2h9_]8@ ?sOaV0        05:30:01 PM       410      2548         3         0         0木铎校园 BBS 社区$h3j+pH MoP
        05:40:01 PM       400      1388         3         0         0木铎校园 BBS 社区 X p x1`3E
        05:50:01 PM       401       499         3         0         0木铎校园 BBS 社区L&`0F\6u"a_mnX+H"D
        06:00:01 PM       407       507         3         0         0木铎校园 BBS 社区 Q!o;Qu @ r/R)A
       木铎校园 BBS 社区-Y ~8Vq0r"O4x jy/h
        2.2% syCpu(s): 17.3% u,  0.0% ni, 80.3% id,  0.2% wa,  0.0% hi,  0.0% si木铎校园 BBS 社区 Ks-E-c!hr2j
       木铎校园 BBS 社区5sQ!KqJ
      结果:负载降低5%左右。木铎校园 BBS 社区Z%mdh)r)\.]'mL0L
      原则:apachetop显示的每秒处理请求数与连接数相差不多,连接数更少一些(由后面ab测试结果得知每次请求消耗的时间小于1s,established的数量严重大于ngxin正在处理的量,是不合理的)木铎校园 BBS 社区g7fN D |ZZ
     
.n*z/w)C|0二、性能测试及深入优化       
'{?N$G2Y4I g0        ab 测试:
o{E1q&]1Z.N0        [root@xx_xx_API_37_43  <37.43>]: ~                                             木铎校园 BBS 社区B&Rp$wT6?
    130> ab -n 100000 -c 200   http://xx.xx.37.42/myblog/xxxxxxxwd_image.php     木铎校园 BBS 社区2d X({2n,Qy&z7L&M,F#d$Y
    This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3           
;h6N$u+b){V5yA0    Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
4L UJ6x.@r a9F3r j0    Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/  
V H4g `6d%|Y0                                                                           木铎校园 BBS 社区(lzt*m@ k.hU
    Benchmarking xx.xx.37.42 (be patient)                                      木铎校园 BBS 社区W4s;V-Te$}D I.S d
    Completed 10000 requests                                                   木铎校园 BBS 社区JM7w.l&G
    Completed 20000 requests                                                   木铎校园 BBS 社区9K+y/F2W \mchp
    Completed 30000 requests                                                   木铎校园 BBS 社区&H$dplI4}@ h
    Completed 40000 requests                                                   
.zOR1[I)o0    Completed 50000 requests                                                   木铎校园 BBS 社区T} w] ]$OR/^
    Completed 60000 requests                                                   
u2s4l0x#fS;QP.r|0    Completed 70000 requests                                                   
V~9P5kDCM$m0    Completed 80000 requests                                                   
ll,z8c7qD7~.tu ~0M0    Completed 90000 requests                                                   
TLJ&UvZA0    Finished 100000 requests                                                   木铎校园 BBS 社区SQkc'eD(SU_
    Server Software:        nginx/0.5.35                                       木铎校园 BBS 社区V:|f(Zo0j7w`
    Server Hostname:        xx.xx.37.42                                        木铎校园 BBS 社区 P] b+jhG8g c,ep
    Server Port:            80                                                 
3G(T*I|_,t0                                                                           木铎校园 BBS 社区7OR)w ?TTE0S)sE
    Document Path:          /myblog/xxxxxxxwd_image.php                          木铎校园 BBS 社区X o,C|g-Z K-E
    Document Length:        575 bytes                                          
2qwv X`gT4D*v0                                                                           
j's$T!\@0    Concurrency Level:      200                                                
]G1l9jrr0    Time taken for tests:   129.500 seconds                                    
9s F"?]aT0V'E"U0    Complete requests:      100000                                             木铎校园 BBS 社区l(x|A.P
    Failed requests:        97359                                              木铎校园 BBS 社区Y8gM4Zg
       (Connect: 0, Length: 97359, Exceptions: 0)                              木铎校园 BBS 社区7}`ZyUmG
    Broken pipe errors:     0                                                  木铎校园 BBS 社区dEt{j4I$H2I
    Total transferred:      82307953 bytes                                     木铎校园 BBS 社区)xwk-wU7s#pj
    HTML transferred:       57107953 bytes                                     木铎校园 BBS 社区"]yRp#CDy-M
    Requests per second:    772.20 [#/sec] (mean)                              木铎校园 BBS 社区+\ TW9KzZ)L'x
    Time per request:       259.00 [ms] (mean)                                 木铎校园 BBS 社区.RY7FORFTH)z
    Time per request:       1.29 [ms] (mean, across all concurrent requests)   
M6rw&E0B4u0    Transfer rate:          635.58 [Kbytes/sec] received                       木铎校园 BBS 社区$Ij-Q+U D
                                                                           
PN#N N'VT i0    Connnection Times (ms)                                                     木铎校园 BBS 社区^k7\sz D+P
                  min  mean[+/-sd] median   max                                
V3{m1bK-FH0    Connect:        1   124   29.3    117  3142                                
UezB t,X0N`me0    Processing:    29   135   17.7    129   775                                木铎校园 BBS 社区a(|IWM1V
    Waiting:       28   134   17.7    128   775                                木铎校园 BBS 社区cVY ou]$].i ]4s*PQ
    Total:         29   259   39.0    243  3305                                
:Y,Ee)H(T7S-|S q0                                                                           
uu!d~v F i0    Percentage of the requests served within a certain time (ms)               木铎校园 BBS 社区 pvXi(nk:s P R
      50%    243                                                               木铎校园 BBS 社区,elY;A#zDx'H\~.o
      66%    274                                                               
-}q t SV6CPGL6WF0      75%    290                                                               木铎校园 BBS 社区N Swb(jH.T BI
      80%    295                                                               
;Po0k;q ^:i$V6w0      90%    305                                                               
.f y'?Wa3{0      95%    310                                                               
h|5P+`y0      98%    315                                                               
2^0ld)s5c7{Z"Pt0      99%    318                                                               木铎校园 BBS 社区?i2^];C9Z9H1`[+Q
     100%   3305 (last request)                                                
0a[^6U}'[}[0    木铎校园 BBS 社区7P0OiQ-P5j6|~
     cpu性能:                                                                         
'?0} m8n-W;UFu0     Cpu(s): 50.4% us,  6.6% sy,  0.0% ni, 42.9% id,  0.2% wa,  0.0% hi,  0.0% si木铎校园 BBS 社区4Zt0Zl2O't9p
    木铎校园 BBS 社区zt S5i,~;@zv
     分析:木铎校园 BBS 社区$f Z$j$\U9{l6ay4j
     如上面数据:木铎校园 BBS 社区7NC-vdx h
             ab每秒增加700多个请求(正常业务带来200-340,测试当时为250左右),apachetop显示每秒正确处理(返回code 200)400-480个
?3W&fM/^+[ z0             请求的失败率为10%左右。木铎校园 BBS 社区9J&g g!qD3S9B
            
3~jd&T0\%v"}8Tn0             即:在业务请求每秒达到900-1000的时候,apachetop显示的正确处理个数为400-480,错误处理(非200)数量增加
;W#rt'^*u9a2O7a0       问题存在:                                                                                         
n(a`1gsc0           1,后端的处理能力                                                                                 
ij7Hlm0           2,fcgi的处理能力(进程数量)                                                                     木铎校园 BBS 社区MOo j3D2sZK
                       目前通过top显示每个php进程设定了5532 k byte的内存,使用了3824 (不到4M),                    木铎校园 BBS 社区9f#A;Gz9OH&R
                       php.ini 中 memory_limit = 8M        木铎校园 BBS 社区5x)rC} B4g
              木铎校园 BBS 社区 O4k@8V&z}
     调整:木铎校园 BBS 社区Q(z'_ F&mO/B+C
             修改 php fcgi 的worker 为 200后测试情况:                                                                                                                                                                                                                            木铎校园 BBS 社区[3P;\l!Pk
            0> ab -n 100000 -c 200   http://xx.xx.37.42/myblog/xxxxxxxwd_image.php                                                                                             木铎校园 BBS 社区(t"f#U8]'OM k
          This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3                                                                                        木铎校园 BBS 社区 ~9^#KP`y/I
          Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/                                                                            木铎校园 BBS 社区W Oc)nL I"T.^EP
          Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/                                                                               木铎校园 BBS 社区0r'_$PG3u)q9f
                                                                                                                                                                  
fS7[+|+Jy4^!f0          Benchmarking xx.xx.37.42 (be patient)                                                                                                                   
kNM5utK^)Bg0          Completed 10000 requests                                                                                                                                木铎校园 BBS 社区(Gj u*f Q,{,Gzj,W
          Completed 20000 requests                                                                                                                                
0S9},qow1u0          Completed 30000 requests                                                                                                                                木铎校园 BBS 社区G6_h;WEl
          Completed 40000 requests                                                                                                                                
HAH-Dg8Poz0          Completed 50000 requests                                                                                                                                
R-d X/fm3{5N:I3g;@a0          Completed 60000 requests                                                                                                                                木铎校园 BBS 社区rA;B:]+@"nC!b
          Completed 70000 requests                                                                                                                                木铎校园 BBS 社区o|0prt'p
          Completed 80000 requests                                                                                                                                木铎校园 BBS 社区~.k{c L {
          Completed 90000 requests                                                                                                                                木铎校园 BBS 社区_[y"J T#XW k;g
          Finished 100000 requests                                                                                                                                
qW7SN5]9X0          Server Software:        nginx/0.5.35                                                                                                                    
GmCjPS0          Server Hostname:        xx.xx.37.42                                                                                                                     木铎校园 BBS 社区5\}6d \"{ z"v,JJi3K
          Server Port:            80                                                                                                                              木铎校园 BBS 社区S,|Gl"t
                                                                                                                                                                  木铎校园 BBS 社区t|PYS,q4mU;\y
          Document Path:          /myblog/xxxxxxxwd_image.php                                                                                                       木铎校园 BBS 社区c6Z/p z\Z
          Document Length:        545 bytes                                                                                                                       
"Y+ql/n|'^0                                                                                                                                                                  
U3iA'K y9b0          Concurrency Level:      200                                                                                                                             木铎校园 BBS 社区RL yvH
          Time taken for tests:   129.350 seconds                                                                                                                 
7zf w U qjN)[N#B0          Complete requests:      100000                                                                                                                          
N8N'e6@OJ/_0          Failed requests:        99415                                                                                                                           木铎校园 BBS 社区B:y,q:}i QE1o
             (Connect: 0, Length: 99415, Exceptions: 0)                                                                                                           木铎校园 BBS 社区2U%k5q5bD,PP*t9\ _:{
          Broken pipe errors:     0                                                                                                                               木铎校园 BBS 社区)E^1Z3Jd$R7w RA
          Total transferred:      82315072 bytes                                                                                                                  木铎校园 BBS 社区 a2\/S X~u*V{
          HTML transferred:       57115072 bytes                                                                                                                  木铎校园 BBS 社区8@5Vpz8ITm
          Requests per second:    773.10 [#/sec] (mean)                                                                                                           
n,D9{` d)|0          Time per request:       258.70 [ms] (mean)                                                                                                              木铎校园 BBS 社区B?L _j9vr/IY
          Time per request:       1.29 [ms] (mean, across all concurrent requests)                                                                                木铎校园 BBS 社区 Lj#Mi\)J
          Transfer rate:          636.37 [Kbytes/sec] received                                                                                                    
7_N1uLQw0                                                                                                                                                                  
@'EV]R)gU0          Connnection Times (ms)                                                                                                                                  
2o{7G`"K(i+v0                        min  mean[+/-sd] median   max                                                                                                             
-L9`z0\zIH4?8K;Z n0          Connect:        0   125  106.5    117  3049                                                                                                             
6Skqs F~0          Processing:    19   133   21.0    128   513                                                                                                             
pD;db)L0          Waiting:       18   132   21.0    128   513                                                                                                             
_*?1Y%V s J7Yg0          Total:         19   258  111.2    244  3271                                                                                                             
d!i'L*_"\v+s0                                                                                                                                                                  
d^ {`x(x]3WF$^M0          Percentage of the requests served within a certain time (ms)                                                                                            木铎校园 BBS 社区^)os'F i,P$D3Z]
            50%    244                                                                                                                                            
!I7F+x5A:MUU0            66%    272                                                                                                                                            木铎校园 BBS 社区!XR@NI3i^
            75%    288                                                                                                                                            
6].B'w%?,j*k;x3k R m0            80%    293                                                                                                                                            木铎校园 BBS 社区f#pu0dg-T z2C_cU
            90%    303                                                                                                                                            木铎校园 BBS 社区%V*`,Ja'R0]*x@yM
            95%    309                                                                                                                                            
F7P;g#K8F0            98%    313                                                                                                                                            
u~ WQ}4Sx0            99%    317                                                                                                                                            
9Ir"OYd_9\B0           100%   3271 (last request)                                                                                                                             
7Z/S$i5m}w9yS o8ry`N0                                                                                                                                                                  木铎校园 BBS 社区)u&z,[gag0` Q H
                                                                                                                                                                  
~`8Rz`c#CB"?0                                                                                                                                                                  木铎校园 BBS 社区u0[5y f,E1l2IEV4b QU
           [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                        
s*uC{.ZW6tuk{-{0           0> top                                                                                                                                                 
Od h-{5t7L K+x0           top - 14:24:52 up 132 days, 23:10,  5 users,  load average: 6.80, 3.60, 2.37                                                                           木铎校园 BBS 社区H4VYX#ND
           Tasks: 325 total,  16 running, 308 sleeping,   1 stopped,   0 zombie                                                                                   木铎校园 BBS 社区bP2v2C?Uf? `K
           Cpu(s): 54.9% us,  7.9% sy,  0.0% ni, 37.0% id,  0.1% wa,  0.0% hi,  0.0% si                                                                           
OTd!oA:tk9]0           Mem:   4144692k total,  2994984k used,  1149708k free,   188240k buffers                                                                               木铎校园 BBS 社区(d-ojP|g
           Swap:  2096440k total,      160k used,  2096280k free,  2341820k cached  
@x|;JLJi;M%l0          
`5jiM3NU3a0         分析:
bYd"r1OF`7nBuY0             分析:apachetop显示并发处理的正常的请求数为800-900(此时所有的请求数大约是900-1000),是跟据php 进程数量进行了线性的增长                                                                             木铎校园 BBS 社区f9f-nIo7nRf ~
                    得出结论:此次调整合适,php cgi的进程数量可再调高,ab测试的并发数可再提高一些。                               
bt3u5KFr? dU3AW0                   木铎校园 BBS 社区J7Y!V ^4E/i
                调整:将php cgi的进程数增加到300(php共使用内存1.5G),增大ab测试的并发数量                                                                                                                                                                            
(Ya8|#evy)|0             [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                              木铎校园 BBS 社区$V3jt2G+_b |U
             0> logs/apachetop -f logs/blog.xxx.com.cn-access_log                                                                                                        木铎校园 BBS 社区 z O8Pn7\|)t
             2xx: 1s)   6:31:52%) 3xx:  0.0/s0 ( 0.0%) 4xx:     0 ( 025%) 5xx:     0 ( 0.053                                                                              木铎校园 BBS 社区l.vn-_;v|*i#~0Q'V
                         25374       1015.0              19.8M7.8 809.2K          816.4                                                                                   木铎校园 BBS 社区$Y6G'` IXR.xK [
                    25363 (100.0%) 3xx:       0 ( 0.0%) 4xx:    11                                                                                                        
$BAXVD,Q h.X0                 2553746     1006.7   915.0              19.8M7.8 809.2K          816.4                                                                                   
Jv"E.r_0             25367 1014.7 20225  803xx:blog/c 0 ( 0.0%) 4xx:    11                                                                                                        
\*Rz*C$ea0                                                                                                                                                                          
!Yl8aXGv)g0             [root@xx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                              
:^x {(^3DA E0             0> logs/apachetop -f logs/blog.xxx.com.cn-access_log                                                                                                        
7vl4aH!N0             2xx: 1s)   6:34:58%) 3xx:  0.0/s0 ( 0.0%) 4xx:     0 (2:50%) 5xx:     0 ( 04:59                                                                              木铎校园 BBS 社区.l#vt[*^*_$BS*u7[;[-D
                        187738       1104.3             146.31.20 811.2K          817.1                                                                                   
J^(F \(d5h0                   187678 (100.0%) 3xx:       1 ( 0.0%) 4xx:    59                                                                                                        
z^J!O {}F6Qd0                 3031919  3408018.1   113.6              26.087.9 898.6K          817.1                                                                                   
F RTuE!E+r0             33132 110404 26440  88*/myblog/ch0ckwd_image.php    4                                                                                                        
@'G#d-qP0                                                                                                                                                                          木铎校园 BBS 社区/JK-uq {Y[.Y$bT}
             增加ab并发请求 1000(1100 失败)                                                                                                                             
c]#WS2}0             [root@xxx_xx_API_37_42  <37.42>]: /data1/nginx                                                                                                              木铎校园 BBS 社区;R6BQ3i3W$\6I"H*m
             130> top                                                                                                                                                     木铎校园 BBS 社区I'H`/@p l2t0kg
             top - 14:42:53 up 132 days, 23:28,  5 users,  load average: 7.51, 8.14, 6.23                                                                                 
*o E_,u{#D vG0             Tasks: 382 total,  13 running, 368 sleeping,   1 stopped,   0 zombie                                                                                         木铎校园 BBS 社区%J9h8Gx;w2["X
             Cpu(s): 55.5% us,  7.6% sy,  0.0% ni, 36.6% id,  0.2% wa,  0.0% hi,  0.0% si                                                                                 木铎校园 BBS 社区9?am` qh@T
             Mem:   4144692k total,  3244744k used,   899948k free,   188852k buffers                                                                                     
g&e[9]u_A0             Swap:  2096440k total,      160k used,  2096280k free,  2495908k cached                                                                                      木铎校园 BBS 社区(F0g4ylY0^z c8Q
                                                                                                                                                                          
-Pw1E-r{p5Q%O,j)D0             0> logs/apachetop -f logs/blog.xxx.com.cn-access_log                                                                                                        
6BNi.f_0             2xx: 1s)   6:44:33%) 3xx:  0.0/s0 ( 0.0%) 4xx:     0 (1:10%) 5xx:     0 ( 04:34                                                                              
EC z uM:? G,E8H8}0