某nginx+php fcgi服务器优化记录
上一篇 / 下一篇 2008-05-23 00:11:31 / 个人分类:LAMP
服务器梳理及优化记录
"G#Z$b4c9Q.mTt0
x p6e#p0lH2|v0木铎校园 BBS 社区)M7wHit
M@9D}6bG;L1{)ff0通过apachetop发现两台服务器负载不均: A 280-295/s
-e8K w @ dj n#`,Dw0 B 310-320/s
#vYm.q X`%bBK/L$]:s0
]kO;lU,Z4\'?(V0pG0 木铎校园 BBS 社区&Gu3a.pQ3\t8~
一、初步优化:木铎校园 BBS 社区2Moz;G,i:[
nginx:keepalive=0木铎校园 BBS 社区x&_ y8R&_"B
系统: net.ipv4.tcp_max_tw_buckets = 5000
/s~;tq;cn.m e\Q0 木铎校园 BBS 社区k4dqK&GM5[t;l
系统情况变化情况:
3A D!{QL~p0 1. [root@xx_xx_API_37_42 <37.42>]: /data1/nginx
MR$Z`A*A0 0> netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'
9j)JYL$Ch0 LAST_ACK 19
4@)[7E8R5J0 LISTEN 7
4rMD#jQ7qo\9u(}:Z0 SYN_RECV 76 木铎校园 BBS 社区z4_1XajtH
ESTABLISHED 3781
(nG7zA6hwZ0 established) 1
&lf e~4_3Sk9VT7R0 FIN_WAIT1 129
c?*NC0w+Dc*A z0 FIN_WAIT2 4876 木铎校园 BBS 社区h1_ K:^.So
Foreign 1 木铎校园 BBS 社区*G$?+u`k?&j
CLOSING 3
{.\]rOU k(hk1e7Z1[0 TIME_WAIT 6098
^fA}7w8W0 木铎校园 BBS 社区 Fo&Nm"c4tZ"L v*r4m
PM totsck tcpsck udpsck rawsck ip-frag
W`/[%yo8llV0 4:50:01 PM 4306 9331 3 0 0木铎校园 BBS 社区r)\4N!Hb0@l(I K$V
05:00:01 PM 4030 8968 3 0 0 木铎校园 BBS 社区,Q*YVn]n0NS6Z
05:10:01 PM 3988 8596 3 0 0
ZSTk~R!f0^0
7Hp:l R X$ZBTP:{0 Cpu(s): 21.2% us, 2.8% sy, 0.0% ni, 75.8% id, 0.2% wa, 0.0% hi, 0.0% si 木铎校园 BBS 社区Jpg7p+K!VKG;c
木铎校园 BBS 社区 w+b,]@Jz,H#dek
修改后变化:
Duk%Gg]"m0 0> !net 木铎校园 BBS 社区 qT+@B I XN
netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'木铎校园 BBS 社区Zi7^!s2[(fb
LAST_ACK 2
2K.}xk*kBA;f*A0 LISTEN 7 木铎校园 BBS 社区\W_nj*n1d;kdv7Z
SYN_RECV 75
?C$n+\V6X]4m0 ESTABLISHED 217
:i6Vk bDx0Ouxg0 established) 1
Kn5[WkCn0 FIN_WAIT1 80 木铎校园 BBS 社区'p+f(Z{ l?)J
FIN_WAIT2 162 木铎校园 BBS 社区@G&ZV/sTCyf
Foreign 1
Mm5D#cH&}!|0 CLOSING 56 木铎校园 BBS 社区F2?Q'S:Q:{,u
TIME_WAIT 5014 木铎校园 BBS 社区v6vr3G;nak
RAn%?$}1Z0 03:00:01 PM totsck tcpsck udpsck rawsck ip-frag
Q4J'a-zQ'p1R0 05:00:01 PM 4030 8968 3 0 0
'i:N `2u3][0 05:10:01 PM 3988 8596 3 0 0
_k+_M5xA.z2Q N0 05:20:01 PM 47 1865 3 0 0
W LUa1N Zq-OD0 05:30:01 PM 410 2548 3 0 0木铎校园 BBS 社区X}c(Bm
05:40:01 PM 400 1388 3 0 0
[x%i j)Arx:vn ?*~0 05:50:01 PM 401 499 3 0 0木铎校园 BBS 社区9}~$nRg0T-fGa
06:00:01 PM 407 507 3 0 0木铎校园 BBS 社区~ ]0x,o[J
木铎校园 BBS 社区 \hJM2w q }
2.2% syCpu(s): 17.3% u, 0.0% ni, 80.3% id, 0.2% wa, 0.0% hi, 0.0% si
_ ku4f9G{|Th4pr0 木铎校园 BBS 社区Nd u {!|U {k
结果:负载降低5%左右。
)^3nzD-O0 原则:apachetop显示的每秒处理请求数与连接数相差不多,连接数更少一些(由后面ab测试结果得知每次请求消耗的时间小于1s,established的数量严重大于ngxin正在处理的量,是不合理的)
'BGYxy Zt6d m0
^)u)u{&~ T4Md0二、性能测试及深入优化 木铎校园 BBS 社区;E$g&Z*}X,X
ab 测试:
'nSW/F#{n/~b`"I$D0 [root@xx_xx_API_37_43 <37.43>]: ~
j1qGGwz7Ynyq%y0 130> ab -n 100000 -c 200 http://xx.xx.37.42/myblog/xxxxxxxwd_image.php
`KO:_'U*D#J0 This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
%?:IOJ?\h0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
2WS_^ EO Vp0 Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
(@1N/qkaiYV0 木铎校园 BBS 社区 ?@!BsL
Benchmarking xx.xx.37.42 (be patient) 木铎校园 BBS 社区*h!u5g*D9[mrAq
Completed 10000 requests
D,w4H Vf z-]0 Completed 20000 requests
}0C t vG,|0 Completed 30000 requests 木铎校园 BBS 社区y h jLp~0s%u
Completed 40000 requests 木铎校园 BBS 社区"u;[WXxx
Completed 50000 requests
,dkg$WG0 Completed 60000 requests 木铎校园 BBS 社区E!]2C _]
Completed 70000 requests 木铎校园 BBS 社区/U\3XYK%{9r,u5t
Completed 80000 requests
$N-Di${,[1j6p\0 Completed 90000 requests 木铎校园 BBS 社区CM.[#Wj
Finished 100000 requests
1W_+Yz*S~z0 Server Software: nginx/0.5.35 木铎校园 BBS 社区&c(f+f-R1u&Fl N#?;Z5y"V
Server Hostname: xx.xx.37.42
Z6v7k@4Y,i0 Server Port: 80 木铎校园 BBS 社区#U|.O#@#yC
;B/D(n4Hd?b0 Document Path: /myblog/xxxxxxxwd_image.php 木铎校园 BBS 社区#l t!gvdn
Document Length: 575 bytes
9f,nXrAu8P2o1YB%D N0 木铎校园 BBS 社区%K.E yP8i%j0kc
Concurrency Level: 200
6z7q,J|b N?K0 Time taken for tests: 129.500 seconds
_z!m,E/^`E6S6L0 Complete requests: 100000
3dwu `MB*CA`0 Failed requests: 97359 木铎校园 BBS 社区VE uc1e;x#e4W@}b
(Connect: 0, Length: 97359, Exceptions: 0) 木铎校园 BBS 社区6GJ Ywj1o7r(~o&Rx
Broken pipe errors: 0
7EW.p-M^ U'TA&{:JD0 Total transferred: 82307953 bytes 木铎校园 BBS 社区4j@J? `u/G'r F
HTML transferred: 57107953 bytes 木铎校园 BBS 社区&LSzpbB*Y M
Requests per second: 772.20 [#/sec] (mean) 木铎校园 BBS 社区1^/R;a!hn1{e6W
Time per request: 259.00 [ms] (mean) 木铎校园 BBS 社区KF$o\xX6i
Time per request: 1.29 [ms] (mean, across all concurrent requests)
;kjnA!gADa0 Transfer rate: 635.58 [Kbytes/sec] received 木铎校园 BBS 社区tcQ9Y n,Z-{&U5N,m
木铎校园 BBS 社区 N+E,W _D y2t,H
Connnection Times (ms)
"yUj"XW6a1V?YY0 min mean[+/-sd] median max
QD*N c&Dd~"\%h:p0 Connect: 1 124 29.3 117 3142
&P)]`\ e9m,Z4f0 Processing: 29 135 17.7 129 775 木铎校园 BBS 社区?Y Bnd.~gUT
Waiting: 28 134 17.7 128 775 木铎校园 BBS 社区'id.p)\v@
Total: 29 259 39.0 243 3305
Tp$HO{a$i0
&Rg2c#ih y0 Percentage of the requests served within a certain time (ms) 木铎校园 BBS 社区p&Cp n/IGQ"K'D
50% 243 木铎校园 BBS 社区P$U9G p9Cq
66% 274 木铎校园 BBS 社区/E&f7UM[
75% 290
`LH y3y|M uj0 80% 295 木铎校园 BBS 社区8H4w U1K{(v:I&pX
90% 305 木铎校园 BBS 社区?/C[E%Xo,Wd
95% 310
[qnuS ]H~bY;W0 98% 315
"_H(f^&AJ+T0 99% 318
9`H4Sf&a(S\.k0 100% 3305 (last request)
"}z'Q$j_$nOY D0
TZ5xm(s\_0 cpu性能: 木铎校园 BBS 社区{W4hagf
Cpu(s): 50.4% us, 6.6% sy, 0.0% ni, 42.9% id, 0.2% wa, 0.0% hi, 0.0% si
TL[Fh^7U0 木铎校园 BBS 社区W;z?eh\e-F"v
分析:
3L'zH,t9IA0\n0 如上面数据:
JW5Y[5]?xw9G"e0 ab每秒增加700多个请求(正常业务带来200-340,测试当时为250左右),apachetop显示每秒正确处理(返回code 200)400-480个
emL#`"{4u0 请求的失败率为10%左右。木铎校园 BBS 社区 h*[6t`zVG;w
木铎校园 BBS 社区 R:B)aK"O:A
即:在业务请求每秒达到900-1000的时候,apachetop显示的正确处理个数为400-480,错误处理(非200)数量增加
u p!G;x B-[-hYk(@0 问题存在:
7F,cUR%Jm+T0 1,后端的处理能力
$vb;~V/v{yO0 2,fcgi的处理能力(进程数量)
7|O E I!tc0 目前通过top显示每个php进程设定了5532 k byte的内存,使用了3824 (不到4M), 木铎校园 BBS 社区!B#_ r#g(b3W mp7Quza;h
php.ini 中 memory_limit = 8M
6Yv}t z1I {4JQ0
Y:O R1gV#gr cA$e2W0 调整:
-Wq&l`wDX6S]0 修改 php fcgi 的worker 为 200后测试情况: 木铎校园 BBS 社区k9`i)Z R
0> ab -n 100000 -c 200 http://xx.xx.37.42/myblog/xxxxxxxwd_image.php 木铎校园 BBS 社区0D(j^A(PUe!X
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
o'cc Pv'Q ]+jd0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
1J{&bBn3L5J-Q?0 Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
D|&mm8Pp/L0
7Ij8c(WZi0 Benchmarking xx.xx.37.42 (be patient) 木铎校园 BBS 社区fC&z"^M#lGC2^
Completed 10000 requests
-q6Y1g'A)h8KE:s0 Completed 20000 requests
R*x6j$?:XZ0 Completed 30000 requests 木铎校园 BBS 社区sb|A ]D/` v-S
Completed 40000 requests
} oD"I e/p-~ b0 Completed 50000 requests 木铎校园 BBS 社区h#fh R!c!L6A KG+Pe
Completed 60000 requests
~xIUep1}? c0 Completed 70000 requests
8J\3EYwo(M.Q0 Completed 80000 requests 木铎校园 BBS 社区N8O6D:r'h\YY#L$M
Completed 90000 requests
AN2T"DL0 Finished 100000 requests 木铎校园 BBS 社区b2?PpoF2_m
Server Software: nginx/0.5.35 木铎校园 BBS 社区wC0]'L$c q
Server Hostname: xx.xx.37.42 木铎校园 BBS 社区^0K,Dz4W.^*~4gQo
Server Port: 80
Xiq8qt5S0
k1Qfam5E0 Document Path: /myblog/xxxxxxxwd_image.php 木铎校园 BBS 社区/l${N^ ^;J(b
Document Length: 545 bytes
nIrDKZI [ _5b t0
I7}!Hfb t'a0 Concurrency Level: 200 木铎校园 BBS 社区 T-i|fg1u\:U@|-[6m
Time taken for tests: 129.350 seconds 木铎校园 BBS 社区Q*xc9kgt9rM
Complete requests: 100000 木铎校园 BBS 社区f&X4H}J4JV:v
Failed requests: 99415 木铎校园 BBS 社区9V ``O'o%q
(Connect: 0, Length: 99415, Exceptions: 0) 木铎校园 BBS 社区Q-f_2?#V _
Broken pipe errors: 0 木铎校园 BBS 社区Vro"q Y;qT.aF
Total transferred: 82315072 bytes 木铎校园 BBS 社区L!XLZM[ioD`
HTML transferred: 57115072 bytes
z-AS+V/WQNd0 Requests per second: 773.10 [#/sec] (mean) 木铎校园 BBS 社区*b6zKU3VY@8y1m
Time per request: 258.70 [ms] (mean)
G2W1e!^ V l/_A^t0 Time per request: 1.29 [ms] (mean, across all concurrent requests)
.pkG-BL0 Transfer rate: 636.37 [Kbytes/sec] received
YdA*R$oJ:X1eY.\J0
2fA-kd(~w]0 Connnection Times (ms) 木铎校园 BBS 社区@-zxIS
min mean[+/-sd] median max
Ln1l7e1d+P4o.W7a;q?XN0 Connect: 0 125 106.5 117 3049
!`%_;h2kr2[q*eq/_0 Processing: 19 133 21.0 128 513
3E%F+pmx7{0 Waiting: 18 132 21.0 128 513 木铎校园 BBS 社区+[[p]Fg
Total: 19 258 111.2 244 3271
B;Q K$e)z!u}Y0J\0
a Jv.IgNImM0 Percentage of the requests served within a certain time (ms)
`4_2`(Tb4|"wQ0 50% 244 木铎校园 BBS 社区.a`!j*U8PM
66% 272
Itj'Hd.Hq;b0 75% 288
E t,Q\4P0 80% 293 木铎校园 BBS 社区` h|#q/dZvf
90% 303
z!s$Ww)U;\0 95% 309
,Fgq?X'Dv0 98% 313 木铎校园 BBS 社区HqHeD{9V
99% 317
tBgy?Syd0 100% 3271 (last request)
5t `;Q;~!}S ka}4J0 木铎校园 BBS 社区7x"k3}/{XL[*c.P+_
木铎校园 BBS 社区7SX%B1B7EY6^1c^
H0m"Qf{/N C)a7Q4d0 [root@xx_xx_API_37_42 <37.42>]: /data1/nginx 木铎校园 BBS 社区sd4O2V kn
0> top 木铎校园 BBS 社区rq2e/VK+qca*]*s F
top - 14:24:52 up 132 days, 23:10, 5 users, load average: 6.80, 3.60, 2.37 木铎校园 BBS 社区Xi8La/qVN3il
Tasks: 325 total, 16 running, 308 sleeping, 1 stopped, 0 zombie 木铎校园 BBS 社区D,Jy.qX?
Cpu(s): 54.9% us, 7.9% sy, 0.0% ni, 37.0% id, 0.1% wa, 0.0% hi, 0.0% si
een} gja!x;V3`0 Mem: 4144692k total, 2994984k used, 1149708k free, 188240k buffers 木铎校园 BBS 社区cYQ+W1~$tP7K`
Swap: 2096440k total, 160k used, 2096280k free, 2341820k cached 木铎校园 BBS 社区Ef)SM&ewd h4E
木铎校园 BBS 社区fRu(l6tH`
分析:木铎校园 BBS 社区;gd5R a D'k
分析:apachetop显示并发处理的正常的请求数为800-900(此时所有的请求数大约是900-1000),是跟据php 进程数量进行了线性的增长 木铎校园 BBS 社区 PUus"w&z
得出结论:此次调整合适,php cgi的进程数量可再调高,ab测试的并发数可再提高一些。
iJ g(H'i8nQ0
"u-^P8Cjqi0 调整:将php cgi的进程数增加到300(php共使用内存1.5G),增大ab测试的并发数量
F6cX#W4x+B/a+Qh7xF0 [root@xx_xx_API_37_42 <37.42>]: /data1/nginx 木铎校园 BBS 社区4tWti'nx5S{r+E&F
0> logs/apachetop -f logs/blog.xxx.com.cn-access_log 木铎校园 BBS 社区 Ljv@ f*U&v HX
2xx: 1s) 6:31:52%) 3xx: 0.0/s0 ( 0.0%) 4xx: 0 ( 025%) 5xx: 0 ( 0.053 木铎校园 BBS 社区 NH9OG)[)wdg
25374 1015.0 19.8M7.8 809.2K 816.4
S1Brr:cp0 25363 (100.0%) 3xx: 0 ( 0.0%) 4xx: 11
'fpQYn/cO0 2553746 1006.7 915.0 19.8M7.8 809.2K 816.4
3?7o y9C%PD"QM0 25367 1014.7 20225 803xx:blog/c 0 ( 0.0%) 4xx: 11
&V7mO }] n0
eXH8PU0 [root@xx_xx_API_37_42 <37.42>]: /data1/nginx
v^a,WG P!W|"S0 0> logs/apachetop -f logs/blog.xxx.com.cn-access_log
h qu*Yxs@6X_.v0 2xx: 1s) 6:34:58%) 3xx: 0.0/s0 ( 0.0%) 4xx: 0 (2:50%) 5xx: 0 ( 04:59
:z;HXNnx0 187738 1104.3 146.31.20 811.2K 817.1 木铎校园 BBS 社区 Rd:D1IanP6q0y$M
187678 (100.0%) 3xx: 1 ( 0.0%) 4xx: 59 木铎校园 BBS 社区V OM-@$Z&VAn|
3031919 3408018.1 113.6 26.087.9 898.6K 817.1
Rx7C7kVM'o N1I1nn#B9{0 33132 110404 26440 88*/myblog/ch0ckwd_image.php 4
#|Me {qN(@x0
e(HErF)O"Rnkr0 增加ab并发请求 1000(1100 失败)
"J}y`PXK)CVo0 [root@xxx_xx_API_37_42 <37.42>]: /data1/nginx
.G0^\;p&T,ev0 130> top
?m#E6i"V`G1vL0 top - 14:42:53 up 132 days, 23:28, 5 users, load average: 7.51, 8.14, 6.23 木铎校园 BBS 社区R-W ~4yi@9N%n
Tasks: 382 total, 13 running, 368 sleeping, 1 stopped, 0 zombie 木铎校园 BBS 社区@U)\9Pk
Cpu(s): 55.5% us, 7.6% sy, 0.0% ni, 36.6% id, 0.2% wa, 0.0% hi, 0.0% si
,_ em~[G6JH&K0 Mem: 4144692k total, 3244744k used, 899948k free, 188852k buffers
'O%s3W [;e7j0 Swap: 2096440k total, 160k used, 2096280k free, 2495908k cached
0}Q_ oT6Dt-vf X0 木铎校园 BBS 社区2yUi]4V
0> logs/apachetop -f logs/blog.xxx.com.cn-access_log 木铎校园 BBS 社区D P,oW6FF
2xx: 1s) 6:44:33%) 3xx: 0.0/s0 ( 0.0%) 4xx: 0 (1:10%) 5xx: 0 ( 04:34
NzIPl.v0 78944 &
"G#Z$b4c9Q.mTt0
x p6e#p0lH2|v0木铎校园 BBS 社区)M7wHit
M@9D}6bG;L1{)ff0通过apachetop发现两台服务器负载不均: A 280-295/s
-e8K w @ dj n#`,Dw0 B 310-320/s
#vYm.q X`%bBK/L$]:s0
]kO;lU,Z4\'?(V0pG0 木铎校园 BBS 社区&Gu3a.pQ3\t8~
一、初步优化:木铎校园 BBS 社区2Moz;G,i:[
nginx:keepalive=0木铎校园 BBS 社区x&_ y8R&_"B
系统: net.ipv4.tcp_max_tw_buckets = 5000
/s~;tq;cn.m e\Q0 木铎校园 BBS 社区k4dqK&GM5[t;l
系统情况变化情况:
3A D!{QL~p0 1. [root@xx_xx_API_37_42 <37.42>]: /data1/nginx
MR$Z`A*A0 0> netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'
9j)JYL$Ch0 LAST_ACK 19
4@)[7E8R5J0 LISTEN 7
4rMD#jQ7qo\9u(}:Z0 SYN_RECV 76 木铎校园 BBS 社区z4_1XajtH
ESTABLISHED 3781
(nG7zA6hwZ0 established) 1
&lf e~4_3Sk9VT7R0 FIN_WAIT1 129
c?*NC0w+Dc*A z0 FIN_WAIT2 4876 木铎校园 BBS 社区h1_ K:^.So
Foreign 1 木铎校园 BBS 社区*G$?+u`k?&j
CLOSING 3
{.\]rOU k(hk1e7Z1[0 TIME_WAIT 6098
^fA}7w8W0 木铎校园 BBS 社区 Fo&Nm"c4tZ"L v*r4m
PM totsck tcpsck udpsck rawsck ip-frag
W`/[%yo8llV0 4:50:01 PM 4306 9331 3 0 0木铎校园 BBS 社区r)\4N!Hb0@l(I K$V
05:00:01 PM 4030 8968 3 0 0 木铎校园 BBS 社区,Q*YVn]n0NS6Z
05:10:01 PM 3988 8596 3 0 0
ZSTk~R!f0^0
7Hp:l R X$ZBTP:{0 Cpu(s): 21.2% us, 2.8% sy, 0.0% ni, 75.8% id, 0.2% wa, 0.0% hi, 0.0% si 木铎校园 BBS 社区Jpg7p+K!VKG;c
木铎校园 BBS 社区 w+b,]@Jz,H#dek
修改后变化:
Duk%Gg]"m0 0> !net 木铎校园 BBS 社区 qT+@B I XN
netstat -ant | awk '{A[$6]++}END{ for (a in A){print a,A[a]}}'木铎校园 BBS 社区Zi7^!s2[(fb
LAST_ACK 2
2K.}xk*kBA;f*A0 LISTEN 7 木铎校园 BBS 社区\W_nj*n1d;kdv7Z
SYN_RECV 75
?C$n+\V6X]4m0 ESTABLISHED 217
:i6Vk bDx0Ouxg0 established) 1
Kn5[WkCn0 FIN_WAIT1 80 木铎校园 BBS 社区'p+f(Z{ l?)J
FIN_WAIT2 162 木铎校园 BBS 社区@G&ZV/sTCyf
Foreign 1
Mm5D#cH&}!|0 CLOSING 56 木铎校园 BBS 社区F2?Q'S:Q:{,u
TIME_WAIT 5014 木铎校园 BBS 社区v6vr3G;nak
RAn%?$}1Z0 03:00:01 PM totsck tcpsck udpsck rawsck ip-frag
Q4J'a-zQ'p1R0 05:00:01 PM 4030 8968 3 0 0
'i:N `2u3][0 05:10:01 PM 3988 8596 3 0 0
_k+_M5xA.z2Q N0 05:20:01 PM 47 1865 3 0 0
W LUa1N Zq-OD0 05:30:01 PM 410 2548 3 0 0木铎校园 BBS 社区X}c(Bm
05:40:01 PM 400 1388 3 0 0
[x%i j)Arx:vn ?*~0 05:50:01 PM 401 499 3 0 0木铎校园 BBS 社区9}~$nRg0T-fGa
06:00:01 PM 407 507 3 0 0木铎校园 BBS 社区~ ]0x,o[J
木铎校园 BBS 社区 \hJM2w q }
2.2% syCpu(s): 17.3% u, 0.0% ni, 80.3% id, 0.2% wa, 0.0% hi, 0.0% si
_ ku4f9G{|Th4pr0 木铎校园 BBS 社区Nd u {!|U {k
结果:负载降低5%左右。
)^3nzD-O0 原则:apachetop显示的每秒处理请求数与连接数相差不多,连接数更少一些(由后面ab测试结果得知每次请求消耗的时间小于1s,established的数量严重大于ngxin正在处理的量,是不合理的)
'BGYxy Zt6d m0
^)u)u{&~ T4Md0二、性能测试及深入优化 木铎校园 BBS 社区;E$g&Z*}X,X
ab 测试:
'nSW/F#{n/~b`"I$D0 [root@xx_xx_API_37_43 <37.43>]: ~
j1qGGwz7Ynyq%y0 130> ab -n 100000 -c 200 http://xx.xx.37.42/myblog/xxxxxxxwd_image.php
`KO:_'U*D#J0 This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
%?:IOJ?\h0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
2WS_^ EO Vp0 Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
(@1N/qkaiYV0 木铎校园 BBS 社区 ?@!BsL
Benchmarking xx.xx.37.42 (be patient) 木铎校园 BBS 社区*h!u5g*D9[mrAq
Completed 10000 requests
D,w4H Vf z-]0 Completed 20000 requests
}0C t vG,|0 Completed 30000 requests 木铎校园 BBS 社区y h jLp~0s%u
Completed 40000 requests 木铎校园 BBS 社区"u;[WXxx
Completed 50000 requests
,dkg$WG0 Completed 60000 requests 木铎校园 BBS 社区E!]2C _]
Completed 70000 requests 木铎校园 BBS 社区/U\3XYK%{9r,u5t
Completed 80000 requests
$N-Di${,[1j6p\0 Completed 90000 requests 木铎校园 BBS 社区CM.[#Wj
Finished 100000 requests
1W_+Yz*S~z0 Server Software: nginx/0.5.35 木铎校园 BBS 社区&c(f+f-R1u&Fl N#?;Z5y"V
Server Hostname: xx.xx.37.42
Z6v7k@4Y,i0 Server Port: 80 木铎校园 BBS 社区#U|.O#@#yC
;B/D(n4Hd?b0 Document Path: /myblog/xxxxxxxwd_image.php 木铎校园 BBS 社区#l t!gvdn
Document Length: 575 bytes
9f,nXrAu8P2o1YB%D N0 木铎校园 BBS 社区%K.E yP8i%j0kc
Concurrency Level: 200
6z7q,J|b N?K0 Time taken for tests: 129.500 seconds
_z!m,E/^`E6S6L0 Complete requests: 100000
3dwu `MB*CA`0 Failed requests: 97359 木铎校园 BBS 社区VE uc1e;x#e4W@}b
(Connect: 0, Length: 97359, Exceptions: 0) 木铎校园 BBS 社区6GJ Ywj1o7r(~o&Rx
Broken pipe errors: 0
7EW.p-M^ U'TA&{:JD0 Total transferred: 82307953 bytes 木铎校园 BBS 社区4j@J? `u/G'r F
HTML transferred: 57107953 bytes 木铎校园 BBS 社区&LSzpbB*Y M
Requests per second: 772.20 [#/sec] (mean) 木铎校园 BBS 社区1^/R;a!hn1{e6W
Time per request: 259.00 [ms] (mean) 木铎校园 BBS 社区KF$o\xX6i
Time per request: 1.29 [ms] (mean, across all concurrent requests)
;kjnA!gADa0 Transfer rate: 635.58 [Kbytes/sec] received 木铎校园 BBS 社区tcQ9Y n,Z-{&U5N,m
木铎校园 BBS 社区 N+E,W _D y2t,H
Connnection Times (ms)
"yUj"XW6a1V?YY0 min mean[+/-sd] median max
QD*N c&Dd~"\%h:p0 Connect: 1 124 29.3 117 3142
&P)]`\ e9m,Z4f0 Processing: 29 135 17.7 129 775 木铎校园 BBS 社区?Y Bnd.~gUT
Waiting: 28 134 17.7 128 775 木铎校园 BBS 社区'id.p)\v@
Total: 29 259 39.0 243 3305
Tp$HO{a$i0
&Rg2c#ih y0 Percentage of the requests served within a certain time (ms) 木铎校园 BBS 社区p&Cp n/IGQ"K'D
50% 243 木铎校园 BBS 社区P$U9G p9Cq
66% 274 木铎校园 BBS 社区/E&f7UM[
75% 290
`LH y3y|M uj0 80% 295 木铎校园 BBS 社区8H4w U1K{(v:I&pX
90% 305 木铎校园 BBS 社区?/C[E%Xo,Wd
95% 310
[qnuS ]H~bY;W0 98% 315
"_H(f^&AJ+T0 99% 318
9`H4Sf&a(S\.k0 100% 3305 (last request)
"}z'Q$j_$nOY D0
TZ5xm(s\_0 cpu性能: 木铎校园 BBS 社区{W4hagf
Cpu(s): 50.4% us, 6.6% sy, 0.0% ni, 42.9% id, 0.2% wa, 0.0% hi, 0.0% si
TL[Fh^7U0 木铎校园 BBS 社区W;z?eh\e-F"v
分析:
3L'zH,t9IA0\n0 如上面数据:
JW5Y[5]?xw9G"e0 ab每秒增加700多个请求(正常业务带来200-340,测试当时为250左右),apachetop显示每秒正确处理(返回code 200)400-480个
emL#`"{4u0 请求的失败率为10%左右。木铎校园 BBS 社区 h*[6t`zVG;w
木铎校园 BBS 社区 R:B)aK"O:A
即:在业务请求每秒达到900-1000的时候,apachetop显示的正确处理个数为400-480,错误处理(非200)数量增加
u p!G;x B-[-hYk(@0 问题存在:
7F,cUR%Jm+T0 1,后端的处理能力
$vb;~V/v{yO0 2,fcgi的处理能力(进程数量)
7|O E I!tc0 目前通过top显示每个php进程设定了5532 k byte的内存,使用了3824 (不到4M), 木铎校园 BBS 社区!B#_ r#g(b3W mp7Quza;h
php.ini 中 memory_limit = 8M
6Yv}t z1I {4JQ0
Y:O R1gV#gr cA$e2W0 调整:
-Wq&l`wDX6S]0 修改 php fcgi 的worker 为 200后测试情况: 木铎校园 BBS 社区k9`i)Z R
0> ab -n 100000 -c 200 http://xx.xx.37.42/myblog/xxxxxxxwd_image.php 木铎校园 BBS 社区0D(j^A(PUe!X
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
o'cc Pv'Q ]+jd0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
1J{&bBn3L5J-Q?0 Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
D|&mm8Pp/L0
7Ij8c(WZi0 Benchmarking xx.xx.37.42 (be patient) 木铎校园 BBS 社区fC&z"^M#lGC2^
Completed 10000 requests
-q6Y1g'A)h8KE:s0 Completed 20000 requests
R*x6j$?:XZ0 Completed 30000 requests 木铎校园 BBS 社区sb|A ]D/` v-S
Completed 40000 requests
} oD"I e/p-~ b0 Completed 50000 requests 木铎校园 BBS 社区h#fh R!c!L6A KG+Pe
Completed 60000 requests
~xIUep1}? c0 Completed 70000 requests
8J\3EYwo(M.Q0 Completed 80000 requests 木铎校园 BBS 社区N8O6D:r'h\YY#L$M
Completed 90000 requests
AN2T"DL0 Finished 100000 requests 木铎校园 BBS 社区b2?PpoF2_m
Server Software: nginx/0.5.35 木铎校园 BBS 社区wC0]'L$c q
Server Hostname: xx.xx.37.42 木铎校园 BBS 社区^0K,Dz4W.^*~4gQo
Server Port: 80
Xiq8qt5S0
k1Qfam5E0 Document Path: /myblog/xxxxxxxwd_image.php 木铎校园 BBS 社区/l${N^ ^;J(b
Document Length: 545 bytes
nIrDKZI [ _5b t0
I7}!Hfb t'a0 Concurrency Level: 200 木铎校园 BBS 社区 T-i|fg1u\:U@|-[6m
Time taken for tests: 129.350 seconds 木铎校园 BBS 社区Q*xc9kgt9rM
Complete requests: 100000 木铎校园 BBS 社区f&X4H}J4JV:v
Failed requests: 99415 木铎校园 BBS 社区9V ``O'o%q
(Connect: 0, Length: 99415, Exceptions: 0) 木铎校园 BBS 社区Q-f_2?#V _
Broken pipe errors: 0 木铎校园 BBS 社区Vro"q Y;qT.aF
Total transferred: 82315072 bytes 木铎校园 BBS 社区L!XLZM[ioD`
HTML transferred: 57115072 bytes
z-AS+V/WQNd0 Requests per second: 773.10 [#/sec] (mean) 木铎校园 BBS 社区*b6zKU3VY@8y1m
Time per request: 258.70 [ms] (mean)
G2W1e!^ V l/_A^t0 Time per request: 1.29 [ms] (mean, across all concurrent requests)
.pkG-BL0 Transfer rate: 636.37 [Kbytes/sec] received
YdA*R$oJ:X1eY.\J0
2fA-kd(~w]0 Connnection Times (ms) 木铎校园 BBS 社区@-zxIS
min mean[+/-sd] median max
Ln1l7e1d+P4o.W7a;q?XN0 Connect: 0 125 106.5 117 3049
!`%_;h2kr2[q*eq/_0 Processing: 19 133 21.0 128 513
3E%F+pmx7{0 Waiting: 18 132 21.0 128 513 木铎校园 BBS 社区+[[p]Fg
Total: 19 258 111.2 244 3271
B;Q K$e)z!u}Y0J\0
a Jv.IgNImM0 Percentage of the requests served within a certain time (ms)
`4_2`(Tb4|"wQ0 50% 244 木铎校园 BBS 社区.a`!j*U8PM
66% 272
Itj'Hd.Hq;b0 75% 288
E t,Q\4P0 80% 293 木铎校园 BBS 社区` h|#q/dZvf
90% 303
z!s$Ww)U;\0 95% 309
,Fgq?X'Dv0 98% 313 木铎校园 BBS 社区HqHeD{9V
99% 317
tBgy?Syd0 100% 3271 (last request)
5t `;Q;~!}S ka}4J0 木铎校园 BBS 社区7x"k3}/{XL[*c.P+_
木铎校园 BBS 社区7SX%B1B7EY6^1c^
H0m"Qf{/N C)a7Q4d0 [root@xx_xx_API_37_42 <37.42>]: /data1/nginx 木铎校园 BBS 社区sd4O2V kn
0> top 木铎校园 BBS 社区rq2e/VK+qca*]*s F
top - 14:24:52 up 132 days, 23:10, 5 users, load average: 6.80, 3.60, 2.37 木铎校园 BBS 社区Xi8La/qVN3il
Tasks: 325 total, 16 running, 308 sleeping, 1 stopped, 0 zombie 木铎校园 BBS 社区D,Jy.qX?
Cpu(s): 54.9% us, 7.9% sy, 0.0% ni, 37.0% id, 0.1% wa, 0.0% hi, 0.0% si
een} gja!x;V3`0 Mem: 4144692k total, 2994984k used, 1149708k free, 188240k buffers 木铎校园 BBS 社区cYQ+W1~$tP7K`
Swap: 2096440k total, 160k used, 2096280k free, 2341820k cached 木铎校园 BBS 社区Ef)SM&ewd h4E
木铎校园 BBS 社区fRu(l6tH`
分析:木铎校园 BBS 社区;gd5R a D'k
分析:apachetop显示并发处理的正常的请求数为800-900(此时所有的请求数大约是900-1000),是跟据php 进程数量进行了线性的增长 木铎校园 BBS 社区 PUus"w&z
得出结论:此次调整合适,php cgi的进程数量可再调高,ab测试的并发数可再提高一些。
iJ g(H'i8nQ0
"u-^P8Cjqi0 调整:将php cgi的进程数增加到300(php共使用内存1.5G),增大ab测试的并发数量
F6cX#W4x+B/a+Qh7xF0 [root@xx_xx_API_37_42 <37.42>]: /data1/nginx 木铎校园 BBS 社区4tWti'nx5S{r+E&F
0> logs/apachetop -f logs/blog.xxx.com.cn-access_log 木铎校园 BBS 社区 Ljv@ f*U&v HX
2xx: 1s) 6:31:52%) 3xx: 0.0/s0 ( 0.0%) 4xx: 0 ( 025%) 5xx: 0 ( 0.053 木铎校园 BBS 社区 NH9OG)[)wdg
25374 1015.0 19.8M7.8 809.2K 816.4
S1Brr:cp0 25363 (100.0%) 3xx: 0 ( 0.0%) 4xx: 11
'fpQYn/cO0 2553746 1006.7 915.0 19.8M7.8 809.2K 816.4
3?7o y9C%PD"QM0 25367 1014.7 20225 803xx:blog/c 0 ( 0.0%) 4xx: 11
&V7mO }] n0
eXH8PU0 [root@xx_xx_API_37_42 <37.42>]: /data1/nginx
v^a,WG P!W|"S0 0> logs/apachetop -f logs/blog.xxx.com.cn-access_log
h qu*Yxs@6X_.v0 2xx: 1s) 6:34:58%) 3xx: 0.0/s0 ( 0.0%) 4xx: 0 (2:50%) 5xx: 0 ( 04:59
:z;HXNnx0 187738 1104.3 146.31.20 811.2K 817.1 木铎校园 BBS 社区 Rd:D1IanP6q0y$M
187678 (100.0%) 3xx: 1 ( 0.0%) 4xx: 59 木铎校园 BBS 社区V OM-@$Z&VAn|
3031919 3408018.1 113.6 26.087.9 898.6K 817.1
Rx7C7kVM'o N1I1nn#B9{0 33132 110404 26440 88*/myblog/ch0ckwd_image.php 4
#|Me {qN(@x0
e(HErF)O"Rnkr0 增加ab并发请求 1000(1100 失败)
"J}y`PXK)CVo0 [root@xxx_xx_API_37_42 <37.42>]: /data1/nginx
.G0^\;p&T,ev0 130> top
?m#E6i"V`G1vL0 top - 14:42:53 up 132 days, 23:28, 5 users, load average: 7.51, 8.14, 6.23 木铎校园 BBS 社区R-W ~4yi@9N%n
Tasks: 382 total, 13 running, 368 sleeping, 1 stopped, 0 zombie 木铎校园 BBS 社区@U)\9Pk
Cpu(s): 55.5% us, 7.6% sy, 0.0% ni, 36.6% id, 0.2% wa, 0.0% hi, 0.0% si
,_ em~[G6JH&K0 Mem: 4144692k total, 3244744k used, 899948k free, 188852k buffers
'O%s3W [;e7j0 Swap: 2096440k total, 160k used, 2096280k free, 2495908k cached
0}Q_ oT6Dt-vf X0 木铎校园 BBS 社区2yUi]4V
0> logs/apachetop -f logs/blog.xxx.com.cn-access_log 木铎校园 BBS 社区D P,oW6FF
2xx: 1s) 6:44:33%) 3xx: 0.0/s0 ( 0.0%) 4xx: 0 (1:10%) 5xx: 0 ( 04:34
NzIPl.v0 78944 &
