115
!"# %&'#(") *'&+")"&," -./.0 1234560 / 24789:8 -./. ;2<6 =>4252<?7@AB ;:>CCD E6;:>F2GE2;2 7@37?:256E?8 !"#$%& ()*+,-.%/ 01"2- / 3)"141$2%5 "16$)*7."7% 8%98-$7/1"-% / :"#%29%

Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'#(")$*'&+")"&,"$-./.0$1234560/$24789:8$-./.$;2<6

=>4252<?7@AB$;:>CCD$E6;:>F2GE2;2$7@37?:256E?8!"#$%&'()*+,-.%/

01"2-'/'3)"141$2%5'"16$)*7."7%'8%98-$7/1"-%'/':"#%29%

Page 2: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

! "#$%&'% %'() #*+,-./0#/% (%'(1,/2*#1%. 34%##/ #*+,-./0#/% 1 14%##/ (%'(1,/2*#1%.

!"#$%&'#()* +&','- :)

Page 3: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

."/'*% 0%#)+)&$?!

Page 4: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

HP LoadRunner

Apache JMeter

Borland SilkPerformer

Visual Studio Load Test

abpylot

http_load

Siege

Grinder

httperfTsung

WebLOAD

Rational Performance Tester

Load Impact

Page 5: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'("$) "*+%&,-."-+- $(#$/%-0*"/1

1"2345' 5 -"&"65' *"#7(&8

Page 6: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе
Page 7: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

2-345/( / 6-%-+/( '-"#$%). 7-#$-/"#$0*.

✓ 9:525' +"--'&;5,)'*8< +&"("$"2",✓ .&"='775"#)23#)> &)?&):"($) 5 7"+&",";-'#5'✓ @'&3'?#8' 5#7(&%*'#(8 -2> )#)25?)✓ A#('6&)B5> 7" ,7'C 25#'C$"C

Page 8: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

2-345/( / 6-%-+/( '-"#$%). 8(6-#$*$9/.

- D',87"$)> +&"5?,"-5('23#"7(3 load generator- 9:525' ;'2'?) -2> ,87"$"C #)6&%?$5- @2";#"7(3 5#7(&%*'#()- .&5,>?)##"7(3 $ ,'#-"&%- Windows-"&5'#(5&",)##8'- Offline-"&5'#(5&",)##8'- E'#)

Page 9: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'("$) "*+%&,-."-+- $(#$/%-0*"/1

F)2'#3$5' 5 :'7+2)(#8' *"#7(&8

Page 10: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе
Page 11: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'($ ( )$*+#",%-$ ./%*,0-. 7-#$-/"#$0*.

✓ G?$)> 7+'B5)25?)B5>✓ 9($&8(8C $"-✓ E'#)

Page 12: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'($ ( )$*+#",%-$ ./%*,0-. 8(6-#$*$9/.

- D',87"$)> +&"5?,"-5('23#"7(3 load generator- 9:525' ;'2'?) -2> ,87"$"C #)6&%?$5- G?$)> 7+'B5)25?)B5>- 9(7%(7(,5' )#)25?)- Offline-"&5'#(5&",)##"7(3

Page 13: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'("$) "*+%&,-."-+- $(#$/%-0*"/1

@)*"+57#8' *"#7(&8

Page 14: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе
Page 15: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1"./+(*%-$ ./%*,0-. 7-#$-/"#$0*.

✓ F)$75*)23#)> ?)("/'##"7(3 +"- ?)-)/5✓ H7I , ,)45< &%$)<

Page 16: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1"./+(*%-$ ./%*,0-. 8(6-#$*$9/.

- H87"$5' &57$5 +&",)2)- H"+&"7 -"7(",'&#"7(5 &'?%23()(",- E'#)

Page 17: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'("$) "*+%&,-."-+- $(#$/%-0*"/1 F"J#8'

K528'

@2";#8' .&"7(8'

Page 18: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе
Page 19: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе
Page 20: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе
Page 21: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

HP LoadRunner

Apache JMeter

Borland SilkPerformer

Visual Studio Load Test

abpylot

http_load

Siege

Grinder

httperfTsung

WebLOAD

Rational Performance Tester

Load Impact

Page 22: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

HP LoadRunner

Apache JMeter

Borland SilkPerformer

Visual Studio Load Test

abpylot

http_load

Siege

Grinder

httperfTsung

WebLOAD

Rational Performance Tester

Load Impact

Page 23: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0'

«Yeah, well... I'm gonna go build my own theme park, with blackjack and hookers. In fact, forget the park!»

Bender, Futurama

Page 24: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

!"#$%&'("$) "*+%&,-."-+- $(#$/%-0*"/1 F"J#8'

K528'

@2";#8' .&"7(8'

Page 25: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

4#"%1. 5%*&(12#67 1#'(,-4%#(2. 8,*#1() #*$/ 2'%3. 9,-:14 '/ 2'%41 2/&,-+4. ;,%$'(*2<%#1% ,%.-<)(*(/25. =4#67 *#*<1.6. !#-(,%##%% -'(,/7'(2/7. ;/(/4- 0(/ >-#*?*,&!

Page 26: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$2. <%*"/$4 "*6- 0#(3. 7%&=/' #- 0#(' 0-9%&+4. >%(6#$*03("/( %(,&34*$-05. ?'"); *"*3/,6. >-.('& @&"*A*%9?7. >-$-'& .$- @&"*A*%9!

Page 27: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom

Page 28: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

PhantomL(" 7523#" "+(5*5?5&",)##8C 2'''''6$5C web-7'&,'&,$"("&8C #)%/527> ?)-),)(3

,"+&"78

Page 29: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom

Phantom, c$#), :87(&8C!

Page 30: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom~ 30 000 rps

,87"$)> 7():523#"7(3+"-),)'*"C #)6&%?$5

Page 31: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom+ gatling

60 000+ rps

Page 32: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom

9/'#3 :87(&8C,#" "/'#3 +&"7("C

Page 33: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom

!"#$ % &"'()%"*+

+,(-*. &"'()%"

/0,-0+

%0"0+%0+1" ') 1"23)*4 &"'()%4

Page 34: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Starter! 56%)$708) $76)# '()9+$: 8";(4&1+

! <-8-("=+. 1)89+;), + '(-34%0"8),1+

! >)33-(21" $76?@ stateless '()0)1)$),

! A?%)B"#C". '()+&,)3+0-$:8)%0:

! D",8)*-(8)%0: %)&3"8+. 8";(4&1+

Phantom

Page 35: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom

Page 36: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

>#,)&3 2008

Page 37: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

M)?&"?#'##"' <&)#'#5' &'?%23()(",: wiki, +"/(), *"?6

4$5"#& :(

9(7%(7(,5' 57("&55

>#,)&3 2008

Page 38: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

6*,& 7-8/9!

Page 39: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$

2. <%*"/$4 "*6- #-0#(' 0#(3. 7%&=/' #- 0#(' 0-9%&+4. >%(6#$*03("/( %(,&34*$-05. ?'"); *"*3/,6. >-.('& @&"*A*%9?7. >-$-'& .$- @&"*A*%9!

Page 40: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

:0"%(,& %"9/ */7*$. 7*$A(-*-8" )0,-0),

HTTP-1)3?

E-0-,?- 1)3?

E"*+ )0,-0?

Page 41: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

:0"%(,& %"9/ */7*$. 7*$

F)%0"0)B8)?

D'(, 7",7'* ,7'!

Page 42: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

:0"%(,& %"9/ */7*$. 7*$

>"("*-0(? ("6)0? *+C-8+

E'-=+9+B8?- $);+ %-(,+%"

>"("*-0(? ("6)0? %-0+

...

Page 43: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

! G("8-8+- %),%-* ,%-;)

! H89)(*"0+,8?# ,?,)3

! A)&*)28)%0: %*-8? +8%0(4*-80"

! <(4''+(),1" 0-%0), , &"3"B+

!NFMySQL + 9"#$?

PreprocPhantom

Page 44: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Phantom Preproc

Page 45: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

),6%7( 2008

Page 46: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

4$5"#& :(!%/) &)?&"?#'##8< ?)-)/

9(7%(7(,5' 7,>?5 7 *5&"*

!&%;"$ +" 5#('&'7)*

),6%7( 2008

Page 47: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

6*,& 7-8/9!

Page 48: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$2. <%*"/$4 "*6- 0#(

3. 7%&=/' #- 0#(' 0-9%&+4. >%(6#$*03("/( %(,&34*$-05. ?'"); *"*3/,6. B"&$%(""(( &#$%-;#$0-7. >-$-'& .$- @&"*A*%9!

Page 49: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

"/'#3:"234"C!

Page 50: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I 8"% )B-8: *8);) '()-10), + -J- 6)$:C- $73-#

K8);+* 8428" + ,"28" +89)(*"=+. ) (-&4$:0"0"@ 8";(4&)B8);) 0-%0+(),"8+.

Page 51: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Wiki

@()==

@()(57(5$)

F"#5("&5#65

JIRA

Page 52: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

Wiki

E0"99E0"0+%0+1"

K)8+0)(+8;+

JIRA

Page 53: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

! /6J+# +8%0(4*-80 ("6)0?

! >)$4B-8+- &"3"B 8" 0-%0+(),"8+-

! E1(?0+- «0-%0-(%1+@» ')3@)3),

! /6%423-8+- (-&4$:0"0), 0-%0),

JIRA

Page 54: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

JIRA

! A-%: 0"%1-0(-1+8; , JIRA

! L3+8". 0)B1" ,@)3" 3$. ,%-@

! >(+,.&1" &"3"B 1 '()-10"*

! /6*-8 3"88?*+ B-(-& SOAP API

! 8C 9*9 D$*A =/,"/ A%-(9$*

Page 55: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

! A M48"'"(1- ')B0+ ,%. +89)(*"=+.

) 2+&8+ ')B0+ ,%-@ '()-10), % 0)B1+

&(-8+. 8";(4&1+

E$*$/#$/9*F-"/$-%/"+/

Page 56: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

! N1%')(0 +89)(*"=++ ) (-&4$:0"0"@ 0-%0),

Wiki

Page 57: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

0%#)+)&$+

Jabber."/()

...

Page 58: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

* ,+3 %) %'408+1" :)

*

Page 59: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

"$(>:&3 2008

Page 60: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

4$5"#& :(@(&)4#'#3$5C "# $)$"C-("

@2";#"7(3 ,"7+&5>(5> 5#="&*)B55

"$(>:&3 2008

Page 61: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

6*,& 7-8/9!

Page 62: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$2. <%*"/$4 "*6- 0#(3. 7%&=/' #- 0#(' 0-9%&+

4. >%(6#$*03("/( %(,&34*$-05. ?'"); *"*3/,6. B"&$%(""(( &#$%-;#$0-7. >-$-'& .$- @&"*A*%9!

Page 63: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. AmCharts

B)G-% 60/=9* 631 +%*H/9*

Page 64: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. AmCharts

B)G-% 60/=9* 631 +%*H/9*

Page 65: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

✓ 9/'#3 $&)75,8C 5 =%#$B5"#)23#8C

- F'-2'##8C +&5 :"234"* /572' ("/'$- F#"6" 6&)=5$", ,*'7(' %:5,)O( $"*+%('&- P '725 "#5 'J' 5 ":#",2>O(7> online, ("...

B)G-% 60/=9* 631 +%*H/9*

Page 66: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

9($)?)2573

B)G-% 60/=9* 631 +%*H/9*

Page 67: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

2. YaCharts

B)G-% 60/=9* 631 +%*H/9*

Page 68: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

2. YaCharts

B)G-% 60/=9* 631 +%*H/9*

Page 69: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

✓ Q)*'(#" :87(&''✓ R"+"2#5('23#8' =5/5

- @2";#" +&"+5<5,)(3 #",8' =5/5- 9(7%(7(,5' #'$"("&8< (5+", 6&)=5$",

B)G-% 60/=9* 631 +%*H/9*

Page 70: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

9($)?)2573

B)G-% 60/=9* 631 +%*H/9*

Page 71: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

3. Flot

B)G-% 60/=9* 631 +%*H/9*

Page 72: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

3. Flot

B)G-% 60/=9* 631 +%*H/9*

Page 73: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

✓ 9/'#3 :87(&8C✓ 1"234"' 7"":J'7(,"✓ 9/'#3 2'6$" -"+525,)(3

- F'2"/5

B)G-% 60/=9* 631 +%*H/9*

Page 74: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

.&5;52"73. M'$"*'#-%O.

http://code.google.com/p/flot/

B)G-% 60/=9* 631 +%*H/9*

Page 75: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I9$/0"); $(#$

Page 76: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

C(#$ ,*9-".("

Page 77: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

B#J 0'(#$(

Page 78: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

- K-"#-349*?- I 0-$ -"*!

Page 79: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

- K-"#-349*?- I 0-$ -"*!

Page 80: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

:(,&34$*$) $(#$*

Page 81: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

5O#3 2009

Page 82: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

4$5"#& :(@2";#"7(3 )#)25?) :"234"6" ":S'*) 5#="&*)B55

T"##8 5#="&*)B55 " +&"428< ('7()< +82>(7> :'? -'2)

5O#3 2009

Page 83: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

6*,& 7-8/9!

Page 84: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$2. <%*"/$4 "*6- 0#(3. 7%&=/' #- 0#(' 0-9%&+4. >%(6#$*03("/( %(,&34*$-0

5. ?'"); *"*3/,6. B"&$%(""(( &#$%-;#$0-7. >-$-'& .$- @&"*A*%9!

Page 85: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

;#3+-. )-,& +#/8/!

Page 86: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

<.%-. )-,& 8/0/=/!

Page 87: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I0$-'*$/.(#9-( 0)103("/( %*,3*6-9

Page 88: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I0$-'*$/.(#9-( 0)103("/( %*,3*6-9

>)%"03?$%($ @"'," %"#(5(A "%/."#((

1. M)7/'( 8 ?#)/'#5C +" 7()(57(5/'7$5* *'("-)*:• R,' 7()(57(5$5 1)C'7)• R,' 7()(57(5$5 #) "7#",' "(#"4'#5> +&),-"+"-":5C (*)$75*%* +&),-"+"-":5>)• T&5 7()(57(5$5 #) "7#",' 7'6*'#()B55 (7$&8(8' *)&$",7$5' *"-'25), "(25/)OJ5'7> #"&*5&",$)*5• 9-#) 7()(57(5$) #) "7#",' 2"$)23#"C ,)&5)B55 (7$"23?>J'' 7&'-#'')

2. U725 :"2'' /'(8&'< *'("-", -)O( +"2";5('23#8C "(,'( " #)25/55 )#"*)255, 7/5()'(7>, /(" )#"*)25> '7(3

Page 89: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I0$-'*$/.(#9-( 0)103("/( %*,3*6-9

12"$ 1

✓ 2 7()(57(5$5 1)C'7)✓ @()(57(5$) #) "7#",' "(#"4'#5> +&),-"+"-":5C✓ @()(57(5$) @(3O-'#()

12"$ 2

✓ 3 7()(57(5$5 #) "7#",' 7'6*'#()B55 ,&'*'##"6" &>-) +"$)?)#5C

12"$ 3

✓ 1 7()(57(5$) #) "7#",' 2"$)23#"C ,)&5)B55

>)%"03?$%($ 0"B#"9'(

Q#)/'#5' "( $);-"6" :2"$) - ,"?*";#8' *"*'#(8 ,"?#5$#",'#5> &)?2)-$5.

Page 90: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I0$-'*$/.(#9-( 0)103("/( %*,3*6-9

Page 91: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

I0$-'*$/.(#9-( 0)103("/( %*,3*6-9

Page 92: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

9:%/'#5' #) 500 &)?*'/'##8< ('7()<

.&5 )#)25?' 57+"23?%'(7> ,&'*> "(,'(), HTTP- 5 7'(',8' $"-8 "(,'(",

T"/#"7(3 ":#)&%;'#5> &)?2)-$5 /'/#/ 97% +&5 ,'&">(#"7(5 #/?%/C/ *0")",-7"%(A <1%

.2)#", +" 57+"23?",)#5O % #)7 $%/), ,#'-&>'* , )-*5#57(&5&",)#55

I0$-'*$/.(#9-( 0)103("/( %*,3*6-9

Page 93: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

;(#&B-A-'#(5=5$)("& -2> 6&%++8 ?)+&"7", , &)*$)< ('7()

."2%/'#5' 7()(57(5$5 +" 2O:"C $"*:5#)B55 6523?

D)+&5*'&, ,7I $&"*' *"&-8, ?)+&"7", $ +)&(#'&)* 5 +'&'7)-"$

Page 94: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

:(+%(##/-""-( #%*0"("/(

Page 95: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

B-#$*"-03("/( #$%&9$&%) ,*A%-#-0 /, A*$%-"-0

D)+&5*'&, ,"( ()$:

/route_jams/?origin=(jsRouter,maps,reload,xmlRouter)&[rll=*]&[output=geometry]&[via=*]&[mode=jams]&[reloadgraph=diff]

L(" +"?,"2>'( -2> "/'#3 7()&8< ('7(", #' <&)#5(3 ,7'

?)+&"78 as is.

Page 96: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

?'"); @&"*A*%9

Page 97: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

*)C 2010

Page 98: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

@#",) *#"6" 5#="&*)B55

F'7()*5 5#('&='C7 #'"+(5*)2'#

*)C 2010

4$5"#& :(

Page 99: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

6*,& 7-8/9!

Page 100: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

L$/' ') #(;.*# / ,*"/'*('#1 :)

Page 101: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

L$/' ') #(;.*# / ,*"/'*('#1 :)

! H8-'2'#5' 62),#"C 5#="&*)B55 , ?),575*"7(5 "( (5+) ('7() 5 &'?%23)(",

!9+(5*5?)B5> 5#('&='C7)

Page 102: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$2. <%*"/$4 "*6- 0#(3. 7%&=/' #- 0#(' 0-9%&+4. >%(6#$*03("/( %(,&34*$-05. ?'"); *"*3/,

6. B"&$%(""(( &#$%-;#$0-7. >-$-'& .$- @&"*A*%9!

Page 103: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0'

!NF 1

MySQL+=)C28

/bigdisk (1,5 Tb)

t34

T)#$5

target

F54'#5

!NF 2

GlusterFS

SSH

HTTP

Page 104: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0'

!NF 1

MySQL+=)C28

/bigdisk (1,5 Tb)

t34

T)#$5

target

F54'#5

!NF 2

GlusterFS

SSH

HTTP

Page 105: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0'

!NF 1

MySQL+=)C28

/bigdisk (1,5 Tb)

t34

T)#$5

target

F54'#5

!NF 2

JIRA & coWeb

GlusterFS

SSH SSH

HTTP

Page 106: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0': ,"%'(15 $"*+%('&", +&)$(5/'7$5 ," ,7'< RE

Xeon [email protected]/24Gb/4xSATA WD5002ABYS

@+'B5)23#" #)7(&"'##8C 7'(',"C 7('$

Page 107: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0': .(=$%(

6 ('7(",8< $2)7('&","( 3 -" 15 *)45#"$

F)45#$5 &)?#8', #"5-'#(5/#8 production

."/(5 ,7'6-) , "-#"*7,5(/' 7 ()#$)*5

Page 108: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

D(0,3"#(B"E(A

OpenVZ#) $2)7('&' 5? 15 =5?5/'7$5< *)45#

✓ @$"&"7(3 *"-5=5$)B55 $2)7('&)✓ 0'6$5C :V$)+ +&'-8-%J'6" &'25?)✓ F)$75*)23#)> +&"?&)/#"7(3 $"#('C#'&)

- D'+&56"-#) -2> 7,'&<,87"$"#)6&%;'##8< 7'&,57",

Page 109: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

1. :(*9$/0"); /"#$%&'("$2. <%*"/$4 "*6- 0#(3. 7%&=/' #- 0#(' 0-9%&+4. >%(6#$*03("/( %(,&34*$-05. ?'"); *"*3/,6. >-.('& @&"*A*%9?

7. >-$-'& .$- @&"*A*%9!

Page 110: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

23%"+"0'! A)&*)28) $4BC". %0(-$.$1" , *+(-

! >(),.&1" % +8%0(4*-80"*+ , O83-1%-

! Web-3)%04' % -3+8)# ",0)(+&"=+-#

! P-&",+%+*)%0: )0 ,-83)("

! H%14%%0,-88?# ("&4* ,840(+

! E+*'"0+C8?# ,+3 :)

Page 111: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

D/+0/*-?

Page 112: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

F"

Page 113: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

G/C9" phantom 7-#/?", 7 opensource

Page 114: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

G"' ,/#&'/ 0$)A," 9/+(=3, +/99$0?'3

FastCGI :)

*starter+phantom+preproc+mysql edition

Page 115: Андрей Кузьмичев – Танки в Лунапарке: нагрузочное тестирование в Яндексе

=>4252<?7@AB$;:>CCD$E6;:>F2GE2;2$7@37?:256E?8

//H.-/0$=233?80$1234560>AI$JB56$K2A372;20$/L

MN$OPHQR$NSHT..T..MN$OPHQR$NSHTN.TN.$U$V643

W%%W%X%YZ%&["\T#"%]I)^

(_`abbW%%W%X%I]'cX)^dI)^b

!"#$%&'()*+,-.%/