Вы находитесь на странице: 1из 631

##################>###

#######################################@###@###"#######################
#####

#########
##############################################################
##############################################################
##############################################################
###############################################################
##############################################################
###############################################################
#####.##########
######### ###@##n#####?###"
##d#######d#########@########################## #
#########@#@#########`#`###################H######@############r######e######
#####################
#######
###################################################################################
############################ #######"#######$###############!###############
%#######&#######'#######(#######*#######+###
###,#######)#######################-
#######.#######/#######1#######2#######4############44#CMnH?[P#/W
i&##:6#Dp?,U$OjP#4zJ%=l#yCQ#MBP(#R##!TVV#D D?
Hbd2&bn!+g#)g?&rN#M
|
#\fkOjv#rjK[ YH#H1z5r#
%#5#L6#F?EE#

<#)1#A#S?OJ
D^l%#$##0##%A&<N?
#5e84>O]9q#$
*N#FRC
RU#!#
#h$#1
"#h#pd2###Dpq#yV#:ID8z#^c:# 8WV K?
#Jc:"#r(}=#(Y
y}{#>##[XJCHHb`##?7#XK#
X#1&RU##7Uz##jp#va>#,c!

A0,A##JJ.##Y\
?m
(POCY.U>y#0R#~S4f/]\#5%&#P#RZd#bZX#5c1b
#VG[,##nE)####o?##U:`yg##\
p%)y3#2 #&D#####<#o"M##B#^#,

XLnXI^:bIXd##w@<&74#^##Rp)tR$D\lPt)2#K#XI4I##Lr,]

Qa#gq9r/O1#Y&
WD.#]#EQW;wwu1*###x(&#k
#JgVB#@#i#zFTi\##rW#^YJn`3gl%Wn)',sRw:R-
<##32#V#7X#/f#
F####T\lV####JFIF#####d#d####Adobe ImageReady##Ducky#######
####Adobe#d#######

#
######
########################"#%#"#--11--@@@@@@@@@@@@@@@######################$#####$.!
####!.),%%%,)22..22??<??
@@@@@@@@@@#######"##########################################################
#####################!1##AQ##aq"#2R$Bb#c4#r#%S#5########
#############!1#Q##Aaq2#3"br#BRCc#D#
########?#8B##B##!#H@!!###B##!#H@$MfEuW#
[IJFUnNkQ;uEOvpQ)w>(40# $Z##E.'w#9 Zu|PwoO#s0
A#FTG3<cMZ'#,j[ 1 #O{H/j|'c#,#D#N*#wSdj
%x #[_3lg\$EzO#BTBjj
T#O>S#64#>###rmsy
lz3l##kX#94-?h]MiW+9#K9,6&w#Q:A
#Z@CQ)F)]Z 2rc]I>#+"]McZpf#n6Y#\b(cT3\e\#yw#=s >
X) #A`,h#{##_##_\2?EEG=#M{5#{#ueU'][=
%ejwaXm/#:D dWk(##\*g#Gj #?
h#n#ql6C`_uo9=##g3s7#z r
#udM<9z>#G/|I+#$i#.#U-##Uv\#Z8##
$B+"kb#|;vvR#@Vne#Wl\U7#E.j\##ik7i*#F#
%##5?V#V?';V## gf V@#K#-#1M\I46#4##\r#
#
O ' #Td= ( W#z# #t"&\@#L##o#

{#pr<[Rc#+#zLKg"eT(DsR##/@</lq8AIsr#p#"Z
pH
0]f\^[#| &UR#t{##++vP+#Tu5<#S N$yfT
a0m2zw#nNRb<
9$#x0$####0 #v]p~>"C^JI#|4"###W]#!
#
b~mF#(#-vf#t 3#\M#o## ####=mzQp#Fta
e9J9JMG#Eu~d#%56 "_^j##=o9Y
nRrbO#v####ME)9Q"CnQ#7Y#-l&###
=Nka~#hXN# j
@DM^n#"#=vy6#y^#g#>W&q@
@
#lSKm_\f##x#\#C!#gM%A#A/ F#[+z[#y
@$K^#:#&#"aP##D\##U
i-pH=M#q45N3
EZ#5Z#o##/##.##Fz6c@SL
[)#
=wj546##c=[>##=#.~
};#3'##S#,"#^#,(12#0#YC##=G:d g:b(q/#CS:
H##l#0Z+z#w]'##6ZcT}c$tLn##B\bjqI 4#+#c#QrY$wZ
K !2##Yr5Q(
_ { #[79#r2 <KRHp9
#fla kh#N5##0#y{SO'O7#'{###9
[##vl#-Q#s#-
pY#(d)^##'b$:A###`~V
t$!cTh
P3##j<A,JHjD;|#pN7W"g#n1f^(J]Q9c}|
^g5]4i^.fLS#=c<Q
A#5'#SB/##p<"###/'#<3w#

E
Whh#Y
MfA
] $>qGx
pr#g##'S

r;WJt1##
#3 $Ne#:D'$z w##t8G$.##1#>#iY$n)###dfN#(
j x#rSn|#KvB>T 5[##yTD#l#
#f)qaQ]kYg#v##}##_'#AZk=#y8##!#|b
#
#&.m#Y*MLp$k#6:dD]q#"#&t[.:;|rt
{~0z+#{Azb9##b#G#KJ 2#RW#<pqqhr(Sr%#Ql
%\CWO###G|##hWOwDL[)#-#b2#bnj#"QLN#,&,
3=< ##%~a#t#\S3i^kPb#R{#vy##Ib#nO
%/uJHd7#G%CPj 'ULE`I#ar-t{'iugI[?#MgW{b=DBI
\b#2#F f3a#5hbbZ%##?.#dM]=d-
#+5H##oI.#~:Z#/Q3#2o\ #!?0^##{W}t&y
#' ZmAg[
i
~y#~ohC## F)\ob#RxD##@#(####D 3GB.Z/bp#u9#c!##
fkeu63X##swl^[kN3W#O#}
Euat#'#&gX
u=v-<JO #
~~##-,##q#mr
~ S Lt#n=#qym)v
_
.i #x#ROy#A6J1s#p ###
F!z#rLj1$pn;r#Q:#7jE##3VQI'&Ly#fD&!X#]J+#DN
#L
U,jRr fi&z:
m"ID $v(T.PBpB##BB# #D###t#ilj
:*M#Q(<D#Q# ]e7 )#2AW9o
X@l8L#\d<>SpG.n+##_Y5# x#?Q###qj/)-
xMZdRCjz;(.#.b"#*#O#R##
L4_k#q]&_##~'
r%#c'it)I^
d5&|]BG) ! r#BB#! ##$ B##BB#! #`9a!)sk]
{L#$se#BfF#C#J(}#<!#?&Lm#a#Hx5##A6#-'[#B#^#>##7!
P!#H@!!# T#'####6T~FKaW&I##########O###M###$O########xn@##j
%*@(Mz@'D)(#EHB#hB##7##8 ###@%8!NP
]
{
q $z*BSI)oNx{zLg:'5Whi##?)*OwW{,#mmW#G4##
'k l<{V*#x-}B@=#2#`#;:
$h#;NtL#]pT#o,01#kC#Q"rJr^#<w-z#\#88swL
%6#Sbk#JaQ6XO##0#bI[Me#5_oe`
#%~K~9wZ(#kP##-#'V11Xjl%*e(Rjdifd>l`e6H8
#TxR# C8@`]##vqaDV#'#l#a#3k##
?M#kbLs'^A#I5=|OiL#2~#:*%B#:'##;NAL##)
;Je
w#@#s#GvGr fS2by<##1#y#0'{WiqK?
,f63#t#="0^}}
9q
}]=Q#KBOk#7jNeT#jGln:t]t###lX#`##[a#F#:
##0jA_Bw@*^^v-###JFIF#####d#d####Created with The
GIMP#C##################################################################C######
##################################################################"##########
################## ##
#######:########################## ######
#!#"1#A$&23#(Qq%7BYa######################### ##
##-########################## ######"!##$1%2A3#
########?
##<x#<x#<x#<x#<x#<x#<x#<x#<x#<x#<x#<x#<x
#<x#<x(##K3##Zb##=U###dslU6-X&m:F u\-
##F8W#D#H#fb@P0X<#t0Q.#LQ|'###k$Ds##8P#M#+#'y##!
I#/#:qZQpJ#6
Q2##l
{3#j=5W#,j}~hslMahWmRh0M#GV;#[_mf5 Z#=r
+(u#W#ePvj#####cV#7GrW"K#VYWW#Yh#
W#
(,SJ
A_G#J#F# ]b
1p#HY@nOh###W#XO'd
6:,#*#T35U<:z&##s## qo:#jL.IP6hg
/ut_###FQV7bW.tD@6##c>#:zWu##v.mGdc<#uw3

%_n#nT[QJ#{#=2#3^>~P#lA8(#=s#<#cz#;J_#vo[;##gA
w:#N,#k_Mt#}
l+###.IB{u? #{#^v~5^6|
..#&@#I)wo/~0#7iqM{C-kuma[^9 wF{tqk-
N1uk#{w:!u"oO}LuX{#9]}(k]/ffF#3
`##WS#:#m#KU8sxsC#b&CyNUk7-t+
M#VU#zY$#T##DUR
#Ii,NKV#}=`KIOHv#03=~vwnPvk
ptw##o
s\N[{##<x#<
f^]&_slmWW*:qq.,6k5!C_D3#9rW+\)'#L#A,E]mo5oF+Gv?
V)V0#|#
vEufV]s1####u@4t_}3
M#v=C#C=nvh-
{m+#QdBz#<x#<x#<x#<x#<x#<x#<x#<x#<x#<x#
<x#<x#<Klj#D{^YU3mUD;n2Q_Q#,##
#hKZ#*TY#E;l#O'o@lv#ew#####uw7-

+`I@

#?nLLc ~#% ]!#K{sAR1KizJdY}}Te/a#w!?#
P
9rySR4OBtc#kQ|%zi+ea5#/
iVq*}.##/F_:m##}K^\;#)
(b{6=a[WSLN+Td]kt+#>#'K;\U#Y#fdARr3=kH_s9[z,
\#u#o$F4xg5o9-meX'l'#&-
Z9##j++
^##nAS#MJ{#\&*t#nNz[?#[
3
*.s7#E+IwQ"#>i#,6w#&>#e]& '#]^#\;o\u#*v]|*:ObiP6.
m8=OT#[4c#]NN!#.##JXhNz`sXtKX#U1Xv>T#'HCt5i!2jC&y#
VL=[#2##p}#`Oc'\#8h&Z]f{qs6=qWSx##1/D#4#/
#OD#q*`*#9GZC#j}klKoL`#Itk#<*l)##/o*z#
[p
f#jESNqrFcntVDcqNkXEx##ZWp{#8Z#6
C[39`(]#d%#]4X.R_uEYXE>#$b#|
F/N.(`fnY-e##@ #{#M@#`#w"#:###Z8PF## ##-
A&aZ#!W(#R| #z#u*#
NvAG]T:R7\l?HK-ia(71j@o###Y2=M\X\
qM#W=cb#JUq?g##,E#cH{B#
gB&#O[z@(#""RU{5SC###UZ_#.P+FW#[a2[SbG-B2
F
#9*:<_Ig#Tb0Z
E[pJ
]#[ZP,)c5\B#`b,#.,(3## #$R`HH#hhs90<##HNzl-
\\Y9ui$#Xc##[.#56&/ sYWdUEGc##H#=#
c##DM#5#J;^;coLi~}z=j_X##Hlr#6####m8&0?tBSCsU-(>-
cUvl#{XQYpp[iOgB\#E`Y+`E|#|
#Z#zILk+<##Dx##mI"cSZa3x1y/"Q##f$s#v!S-
#CU##rr#n##p##;dI^"bc#3y(#VH.+#-##m3JQ&##;
%#Kpl8CI
#)W-O#{6###yn:;LNf#0#{k+7+#%
{s_Y>q#\=+0m]kn#,#+#v]7e#d7*{Me###<~z# 7Tw:#yk}
##x|#s-zjZj\#j#Z#q9S~ztz<5-*DQ 0PT#=#f#(v?
:J###Vs`^(,#6#
z##X_ 9.2#Z2x\>
@|* ]3gnw\UZcab..#q#[Y#J<;Hgx!
F#CM1g>>zOy#TK{]wC`0+-ZOE#hm[N
#s#=E=\Y##_i }p jw#qYwVw#,zk#P-zx#c{9\#s
#5R##4kY#mk]>p#] Q{:#\##`st$#+
6mhle#;A3#[Z*#1m{ci}{H 4Mz)oW
zn{J#KctDkJce+42#PN55VIn.3&6/\1aN[#[F|#
%.wZ{3ymj?*3uMd ,tSMm}Cc# VmW 8#
}_ju6}~Y#V82k:klZy7W e
q
clid

k
k.:;k
v :#Y?G/'S k##iS#U#]FThScXJ#n.W
#t#SWq{. G.j###X
PAS#dH\#8E#
#@?2 ##z
%tH#w #(XkEp#~v;#M##f~~SN}#RoUX-
###uFU]U>\k5#K{
%u?y }<-%u{W#b0-qN9#J#iW#\d#]co
s#"x/t#b#6 #N+(fm #|#==Z/UPi-
#uHu76Q>#uq}{_#n6yRWYh ,#`#_##*Q+]=ZM[Tw
#t}6##y+x#,Sb+a?Z6g
zvj##_e##<x#<x#<x#<x#<x#<x#<x#<x#<x#<x#<y
>oM '#G ~#c##~o}|H?#<=u}?K-
7lz#e#
dE_tU#-7F*pU:#,D#n5:L#[

h,0# h]s[\A#|#w#]##+X}x`RmL5TJc|c#

#
~YA\+}#=a:|K## ##)@#W#2f5FI#S4Jp#:]
#d###+YVLO?Rl`#)v#TnN[];
+B##tmBbWFWY)4#]w;g.~}oaJ2Os#YXq}nznZGA KZy|
YtP7Wk#8c=[VFmk-
vgm###kU#VAeO/Z}LrS#XD{&\#t##zX #ZkB#OY##jR
%u# 5K
P5KoW##3KS}#uh#R'?w##{x#Y~!n UN#;
^c#YMBp>#P`A$l#'##)N|ees4|$&#Z#8
M##*<[u#'j#d U;W@cv~g ###H]k###q-kVR/Uup[
9@%>#zo#*^#d
T5K=#qsS.u;bBq4ly/l#G^#.3v#Nk#VFXLL$2P];#'mS#6
.Qr

%3#/A-#,#}uM#np##J#g#u#}+};Im7 USGnJ[#.[:FI?
#77#u/J2'qdt[5#VDb#[ot_Xd#q).
[/qXjk#FzEWB9hAx#{*!
##jBL8#y ##pz#nb#fS4&fF#lNkb#NQ hr#4b$._d
Kcp)nj
Eamo{I#x~##'LD+Ttl##
%T6@LgX@H7#p#7;#]KJ9b6#XI#.#j#0##sS#+")#fGQfq
HVM#-p'## *ARl'i|#B@lJzq"5
##O#`SX"#v|] 3.#z`LidG###hg#xE@zY8SRa#'rh(!
#LY=UUU[#X#h &hQ<J^(M:^q0b` #\#o^aZ[#fkm'f
#A##j]#Usq<iu FdX
#_U?:SD#nsD[#2u#5#]##5UiE{#Z.>Q#Z*s+jzW\U3CC#m/qf*
Zg_-=##g*Es;/`ihZ*C LMk2@ULEC#z
%X#hW#K#s)cKb#YAxa # ##9#,8aXlY(d
LV)#<^#*#0#&y##lS#4.## ,3#U>k`#v5#v##
}[#>c<q?>x9#}?

#
S #n#i #J`.A2L~r#v(YC~F=F3_W#uY#su8R_as8
x#w9#vZqh,\+U#ulKt{TKS]< # j\#AB
0#A#,9G#U-#kv.a|
A_S'r#bW#iid]V#3J>###"H7@rj#;F#kJi\fmpmu;^9#j#
Px.
t+Cxe+L
f
X#b#"#4BqJ##&#r"HH<^;*R*+D9#^"#R##@b)@f#h
#f#jMW4#~#m#MC<#kEt###,y= RA_t -#hk
##-
z
[mzXzB,
l,##c[[.*+U####db
tfA+#Ose;#DLD<9G-#qYcS*E8L
>###W####7J$rq#r>#|[A#M.
m#Blp.uI#O8#"H^2 O)Br#ah#f1#s[#U)#W-
/o^O_##31ET.}#eVa!cEk#Q"#mT(KwZ#
Ul
8L#L # |>=NkF,g(X Y#=ly-
.#F#Im0\#VB1E;a#YKR###
Laf##9q@D
V,#r6#$.#O8~nF@`hy#?#q8q$xQ#6)T#"11j#>e8
9t& E@/<p7#,s,#z]W{#,,Vf*#fCv)##Y08
NX|#4ay##}uX
+v=#^B]#&S.]NaM##:~###!
5XG0#X$)##h#cYk#_`#}?/##~ #M#}~~o#?
OUjH#S###i#Yr#8rPC###
0p#|.#A##c#1c>]k5#]K%l##+{lR#t_:#1E#O,Rb ?
>13i?_l,Csk"SeC#XeF,^R#G
W#:b=JKVL=7"VzC#JXP.d!
t$^#?xp#9` P:9?
7+#'dXQ#7#o4oZp NIHkmdzg`aTb.8B=
#oXv=TJ#
{>kF6 N5X]LP#xEtZ~.`
TcF
#r

X#>####ad#<RNDa#Xg&xt+
# Y
uK$lm#V;|v #,5#kP
{eTq "##lZ5f].K#elrjZlIqaY.
1####8g&ye4w##Yl##@o+#C
z*~_u#N#e}1: ###/;#_##~>#+ZN#@[##`
|so6J_eXZUl}Y{t#.Wk8dOWM|#TU#f#c#%>#iv#n89?
S;5_&##~W`Z7_7uO#_O#u\7##5K#Y#W?
S.Uk7#X#Ql+#SPBzffW.####Njw#+Uq$V3#
#<x#<x#<x#<x#<x#<x#<xZ==4 #iz{ai##nj#Wh
#l#+\k Nb~##NDVWl\U#~`*/H#?R
P#E&Drm>#?KM"##!I
#$##w#%9}#/d;:inm-Q}N~:=o#nz.:Z[h,i=Kr>)~]
9##zz^u525
N#VX3#i
j
m_U[a!`U-OYZ Q5q?
m
s##SY#)4W/hjl"G(J##_>m
m=z#X[?
p#zXJIyQk|
(##OLI#_;#w7##1UFen[#~#mgCizV}#`wgyJ#^K\##u,oW
#6V}H M.#6#=Y'<J#%#pj#Y_U#'7yI^##};m#K
T _6
6"#nr^ ;il.-)UzAl#c.q#we#=nj=Z
L@+#+P3#<UQS;t#`#i?u #zI#]-
P#U;=EGi9#}.OsYC/yf#Q%?##I|
##]QYkm3(#U8m{ya##dW
#f z"8R%#zl#
=u}eiV###Z+#x9Hm#~Wc
O`#]K#j #k#T-#bL-#vx
1``\?,Q:?#W~Hy1G,[eTRiI2g
#bGlq#n:Z'v#g{%;iVU#H<#)_ /;0U#(F
~=z<8X#

k_3,~^##y3=g[-#R#Ki#F
{^*(,Q##+2-}*t##N}3dz/r7#~Gdt}jK"v#):e#[t#
7u=#`"
TG#Tga_#t"##
Vqa##Z##d5r#AX#m@#f#2Z#s-z^J/Kp6X,t#--:.
$VvJ%0#Y +/yJ%f#6v##^ g]##
#W/#HD}v@3#s#d*P#j##9eA.% #K##U1Y!#~
##Wa#,+Z#"6'. Hhw_gvS^$)z-:#uO5C#c##C
5hx\wk^ha9NCk4Wsll\KQ#vE`Z+
dk@#
eLr3)<q=+^`#scL4.62Z#8`VkWXP&R% <,#zu?qp7oJ
Bh5MA##
#&CVlxj#&Xy84#s<#\U?#=->_jWa ##9)#!"1ll#8
/##4m_)>#
J#Y1Jp%\&b|%|-s(Y##2#K}#
)#qK##D
lE#\Gi_#Z####qzv{Me:##Zw###%#Bqaw\
)%###PZ#ej#%s6MZ[EwsblG5`5=WlD#_[ ##5##m#N|V
#s UvdEJ/##CB@B#T,#Y#'be8#h['M>z#d#K3##J8a
>J#LP#L0n\X##nn}*##^##44
J [I@nVj[S
9e#vVEf0g##z8@k##HNW#&oj6&;50JU]##
# ^}JX#X&0K#

z ##M{6Ez+HH,w#UZ#$##I#OPj#jAk5#KT#4
&jTq+R'#[T"Y.##R#/8hXy1##I`]DE|###u<C#
##iw,WA#DUJ&%%F#P#m k=Wnl##:Rg*XF|
\
}^rIKM#taQ##~ZaB(n##;_N#u BP# YcGy.###mHmUd>\zc
r-X1=rL8# J>##I9abH 5 M#g/ Yt`dS
,#Jb5%##If##.J#z|
&$#Xd#T~3ByoVPhYmzF&Y.#E6#qR[L)92e&#dFRB@$7\e]
#O?Y#jZ#rgt3####0Y5un1{w0yi@YbMNK#(
u#L#h`#[+3J
#@ ZmB#,, #+
###Xc0E#b#wnr[c]%#Fjg(/6er#.`6PLY#EGeV#|
<E#V9#F7#vXxU##<x#~a3##<#
DD_v1##8{.:%0+'#e##Wt8#V%q
# {5~t@
>zj*<HW4d##cv"#eHR##b!)) ##6cu6###m[^)#N& #:2#
1Y#T#8##rg#bu4#W?)#nX$#C4@jt6ms`#*1YmM
b^$h###83
U #F!@*P,#D>8XURo#U^8g8Y<&#?
p"Z<c#(* ##9j vV\#1[#X1(##H)ps(DX#qI#qG9\_Cz
#VVj}#<`3,1v3#0)A|~#=>#bLiobAMtoo8 i2+ BNG?
'#N;6#
#46j J+E#`#3###e
#<$r"#Hd<3#u6-7 #E?#*eE#o###?
#D##g@0/,kF5bhY#C4dJ&m
Y##e#9#$%-R3 ##]`fZ[$|o##bI/?#'#8K`)"e#c|
#&#}##oOG%CAE#c(#el+xX##*
6SHsRU<;#h#f#V?W
#{###{om'?
##<9>y#9#8##q<}y
B72A.\/##y(@#\#$*#"
0da\#Zk"#6#nr KqJDq rG(#l)s^2?XXJ,>y#?&|a#<
#CcG<#O8~8pfQR##>reeN~4a}S{^v*R#'qog#zT
#m#q$
,G#Aw#"25s#f_d@k~ #]O#;#K#t##n#A"Fg9##'z#<

# @KN~Qq#f#94ew#"X1$#B97
~q###%XYB}8^rb>2##8!=8E2#q#(Y1#%
#090~#F
VU#L#A+###c!l#(c(s#y<#1#Q##/?5>I9#%v#w!
E##RW #LT"4sRT#9r w:M{My{#~/8 V`A}J-L
/&>v>h#2c 8A##|9AqYd^xd)~G#Q#B"1B#
C#
#/Rg#

r8#WY#z[###?/##
##ya\`/?)"y G,*,#(a
p#FH##K##1#m$3#"d>CG##o)Gpq @e{i{#U^#GR+^E#(
/<Y#2j
Z
~##H4y#V#BMb#@#>uuO}Gq_ZZI#Eh#d#yM,#oF`I
9###g:8r`v%.m}:mYR6 R6[a%3nq./5phlyc+__%|Y)7 y
5QSX?#Y;tg$a
U#V #yg#&a|2c$
\###AU;pj[#e%;+WC##QY#/l# AmVDdfln# iAB#~tk
#_U:zvkS#RR;.zzsm5U}<5#krD\">
d1,JK.z_
k#`84#9E:#d[Ev]lDYT_~[w?

vE%.i#5epnujw,P#r%#c#D@Ml&#=rOCl:5z^#Y_tk
>kB#
#J#%s`J:#\V3#6##(}G["##uz(Z+#o{9
3
#Z8A#{P6R6Nu+#h?uEYOpW'S&)h-k+A+;]

6<~K#V
#
e*##q).#"v#y#p=auhmae5wX#Q{Q#jv#?#d(#J"
u7ro#pvR#bDh)J#ks|

t#z#kO##w7S#Y/F#.M#o#fv#bjsuZw]bIN_l=>Mzhc#nEfd*
#u#q5Z4nPtn[ km&Sn ] Rj#z
Mp__I#ic/c"$*{#d7#qn*_n\:t{#6oW[?r
:Ez#Y}|g#Ft#.ZgL$#u#0v
6#V#$6#&#
1Q -u_{nD;ZGvoGY6#F;XLRs,|
j=#6[#jQKSft#:#B]TZ8#[+TT+P##Y.#E#
\c))
`x #<x#<x#<x#<y#+=}r:wnl#v#eL#Y #BW:]#
X #r#Nfp0q;(>ay#LcwEZA[m+[Rz#&|M!+bn[=
*J}*##,I#! (L#!D! .B#9Ns#;)J]#w9?P8
p#IF###sy#B#;)JR##s{F###R#b=>}C<U#q?
xs_a}<#$WzX

#lIO]Q %U7#WlNu #l}ygc>;
#}#m1!#hQ##1!;N#hU"-)LUk!Ie
jq# #"F#^V[JC#p7`?
yEY#^#I|^KdNK,
u:N
|7%-
f^ap#;Q#:I^q"#Xn P50W7J#|jS->%-z=OeNZ|
#W
V) ##
;I
#*##~eN#'o#rWTvR;#;hR#]&3###XB@
%#A#_#u##&N#*#6:=~]#&k]ek#P3e=Yn#U-
U2#ze~l4#Cuuh
/j#J;vIq#r#G(B#YWCO[~)##wG#5z
R
*<wg#;3_V%###l$#7zE45MeGf c#x#Q<1*k\y"v]|
W*gG#2#c+J#c#=#lbA1#_}##=lj
E9&3[EfOg_R?##V##Y|
#%c+$i2#-l#)#&k"<h9##Ecf&pL%$,
J:

,mi:9#smVL>#s]#m#V^#imk[FW4.cV9Q]C;-
g^J#}3riZ0[Gvx##jYf#(kcx/AW#V-Eg#J4#$
%#Z#sX#XT#z#N##<#(<[#&#Sa
#]ZyG!}Zu
#i3#~k##U^ #+ddb#zl#)x$#Rg4UKi
/4#IG
4 on_U@}-Z)#}VOQ5)f
G4 GG
k
^p2TCgW^,#8#Qm#~:1#6$S9[7##a#
g`v#k1X ##^
1 #U##,#ZBw#lZuvh(f6Rfeq###!
Set*#"2B`#2Eg
#%,dF+H,#4%xEha(#T#H9##p#y.#8fH8=#taA-[^-x#*sU-
#FCkM#m
uT#)#j6[vmv=Y xg&z1#!at#8W`Ia__
sje!+BN*#<#k)Y#:LB#"#h#N Y~EV##o/R|#3{#%[51 U#;
WnM9y#[Fr#adhat.#Vjv#-w##HRVG##A}
b(#41#BU Is#`x p##8x?<}8#?s#{@
U#n##A###81
##
l G##J[SJgYg0Q?##O2N
u%ama`#0
#j#|
z:M S#iD#RcBs##m6#U{5V=N{#
8]##p=:h&aF
`#j#t4.#e#mZ#^cTf
b`(b4/
M\;hJim#5lYhP#!mpR9[D'g[oSHp#1a9[#co#J5ijxd#
'iMgSs#T^Ge%#<^
r8(#5Y@3
%- 8####)?#H.
{ MjePZj#G###H#/(#v#B#$
8`(
K @g)"vT-}#k6#}#*#-c}x
#Wz#1]FsW<QR)#obS\}tvio:nG=b^,D;X=38l[$\Q5U
#y#]`cc#X+zT.ZW4##s>Z@#}q&
lvid`2K y6##
#
#l[@[m__fX#lAR-#A#-oY#r#AbwTa
<zd{%#D#0w# +#`#w#-xQYj##B#r#
I6#p;#z#f/a$S#
%#Di#a5vlr}8^#9##e^L(nhit*ze#J#}=kjME#L,U7&or6Y
;5#<}rxyc8~~###?vR##mWIe3H.J#{;W
x###[]#-ELD#w##X##b[s)s!YX#X#CuX#
Q{sF@P##11N90M#8p# I##.29!
cC2YFi##KnUz#D#^X6M]_g#Z%"#?
=YfW`v(<+I#=Rk*VS8X::Fl,./v]v#sQ##!
##0##pSG#"NQ#q#Q#8}&i
#,$@b"H]*##x^##m#'##mM[3#\p,#q9"c3X#EP
V#,"b`qn+Z;#2y#)yv9!b)Yo,S5]
[8#\m2]#OLochs#s#n+UW#HS'8**EuKh<^0p#d##5Q"]eRgb
'#kY]#<CmQn#-]##d8?]#^#
%#I6,X`0#`St##30p b#[7#jSR$#!C_|_j;]jTef4AbJ6#
#
g##a#
/ Txg#iF $!#eC 'G#sm#7c8D4bF#D2###%#L
#
Ie9##<(X#a7#\q#\Om#x,s#
X6z{][U~C@s#"#m<#8"#r#G9hT#/@k"2*[x#i/
G#3#2 9sN2#l&#X)'#C)"#iH(G3##M4e>#
<<qq#&OcpM<'1p#2Y1Y,c<'Z4`
+#n#V##8F{##Q##AE9###N3,#,x#ir9g##?vQ#|
$#4a>_^#d<a<"<##=_}Q=#mRt-8#)~
#D#U,##
l |##-#z;#gv% ###"#b|L#Q
d#
W#|;E?#8!j#6_8dXq## #.#s#Y"#0# <ihx#e.:,
#.>Ac#.#K83#\##UZ0W^@|s##O,hD#l
*HG#|R}[Y(4_#Ugf#v[z<<
(#TS#b;##\h-
X##IIw4.wk{##!K~##3#{x##bJ!
c#AI63,s#N$2q##2&3s#V#>?#<#/`/}}~?

}
#yj , #a1ZH\#
'#'%5f#ndYPY#oqB#g### gX:?j#..#aC\#aH#.3
j9o;}#oe .+EIQem
s#<kN${/j
#).l#[0y\6#4#I0Gydue## A#e)##%Gs
#d<O<M4g,KRK,erI$y|y9e<<<uF
##0b
pOaa#r@G#3< mwk-
#$=Ux#ED#vD#y#a<y#a<`#8G#Mt####K^#C##C#k##p#b(<0E#8CQ~?
##~??{_2l_]-ak`2zM/#&80Y~O#3$e#>#6pE#
#z=G#f#_e2_sgF#># 7TkMbnk#p'^!#'#ljG*##0@.
$*4Le$#Er"'#$
Qcc##b#a#X%|a4e
##W# +[#I#B@nxe#?
#d,\0#/n##8X#x#w#}9##q#s<}xxyqez{#UmWL#Z=
@k#>b
g$"Mx#&vC+'u#3Apgt#.tw^C###GB8C:N*?k#s[^X`<6
Y"*-RdXdrA#nF,%"b#0 ##RpJ,#=%

<kTa#<]8EGsF#qp9&#I#U/'c#XHLQLld~e#^##?

f##q<q;#`#xO?eGd<}sr
0#:S#b#Hw)fh ?
q#y
G _y6oA+ @vK$DeKOi&@.aqv#Q2c(\:##Gidq#~#Tk>q.y*
~9~9/##9##o#\y+dA<nql#9ap>#?##s#n1x
%:HPQsVUX&a2T#)8cJfb#eH8AgC8AdV(d#\YBc#V3L#<pWD#
y&#A5q@39\xW#DYf##-9
v<#y
^ c<V_hs}OTH`H# r
u~`c<s Re#^y#<? <r##"83#\1
%c/
/Q #b##q#/?
s###Q"N
~E##Fl
;lZN|##e##`#B$lny&######]0}#V-/r1%
5u+e##w`Zve\#cgO'_|
#//tU'YYqul]w+>
T@$k'Jx##X
/{#_Zskm#
`/E##/^XsCK#DPZI&%##,#J*v#N<dz~nA3#|
yWEH8#q#>s9soW #dRX%C-
,
cJr, > ##k20Z)g#=#iaoQ#'E4
h^,
Q}g`#b;#ci5#;b+hijm[y#]hSx#7
#{_./?u_Y5%Wuca^o]
###[,1wgZLqG+#Cc2AVP!#i"#s
.#4/}Gi#Pi ^v~1#(rA~C#@_c##XnAs#~DN
yE^##[:^k#Rj:]Pnvj r#M#\##x
s#)IiS+E>#eK+WTFM#f[bnOzNqR,sZg##]1xQm
#<x#<x#Gnv^#Eo#1u+-{7vOdKw#n{m
S###JiW##vU#YyWM$3N8f#eJ###&S#8sc#Bda#s#B#9c#.
y9}>D~_K^>#hvmB=:O7gt##fZ#*#ck`]BNd#}Ylu#7r3
K#Xn
`#|Sk;ZeU#6#{#>0Uj #EljNW#
-u~i OEzZ :
Dy#I/O}*5R#%>>}X#Kq#
aN~Hk#W###c^'_#[#b-k75W#lD,J/]?
_..d #}g
^e##e#?K:)7#WEmG_+>OD/woL_#m?
U_f#+#Zo+_PT-i#7[\j#Z#E#zCug'-8;EvGh##M-
q
#'Yu#YM.0
+U#A#xoeGc4l}v#TAX2Nh-
v_b5#
Z#vVCmS#rl*
+#)zvCV7:';I]<)#7YUv2I/}UJW
W##.#lMr0E[]#j^m8\q#Chvndh4K+$

NER`4N'{3`#r<(#pRb##
#W7li`@GP###+:c+1m@#{
`eNPi)2~#]a#M*#4~#}HZ##WaU;Ur:Q##\>_c#w
Xi#-4FDI]l:N C|##dv?_QBx5(;=7|?Ow8#U=d##9gPh
_
w_wiE^MXS=wE#W#}7 7 {##rkw?
##uO#OVQ#Rww:# 0ssJBl[29CVi |
1z(#|'#S#Jw df #,Vm~*='#^stO###Rs#',022DR$b3#
%:r#6ZCsQ6#ft#"5!)|##[Ou"W##94##=d#Nj
kvI##IT#bP~_F*ZY\o5;{`b-`]ri)3_##!
#{UqE#2Xq6#nh#d;|~Sg?/$le#f+#+#(
]_IEe#Tu#_4=/<#N#~#.#n)b`zU\Z#uEu~1
0##HcYX#S))"[V-
9SN2R"Mydb#(`.eI#FKDKg(0i}VTg#(#\q*n#W\ f2W
#
lU#9#]d4Oux8s#p~%!#
##
#av]x##b
[xI###HY##W<#### .
;X#JF#s:d#. r+)
.
MN@#5JZ8C;##l:_3#I ##?w3#t#Mb,#efqNDi3~ #7
1e#r l2^6!aN#-Q#DP#/ 9#.T#b#\F*r4#E;`##h|
$.Yp#"P3CE"R-b%.S!#G#P+."VYYlKGr.q#^i8-IPrrC/#
I#L9'zIl#_%d#la b#pdA2`$Tf##b^\-#6+"-#^l
W1vVz#f&Y#7,2yUcA[zY,#yMkCsE7b fYf*pHOO"##R^I4#
PK###VWy5%c#Ind#g#Tn#8xx## #d#Kj#4#3
u64###c###b>Xl&x`)
W(z#JlR##|D!E##c#e #Xa#Ra?#0"###e#i;##4#^a#
fX6b ###cooNdu#NPg#

6/Sjc: ]ZaeY

#J 8R'
1F=##)6#+#M#`#,8#8##JWC#u#&|
e3K#>F)0dfkXd<p#rdfR| k].
En&kavGo##CLCd/dP#SA821B,i$#H#Y!<268#g
qIr#}Q#qes#7/8aKTc##|c1f8Eg#xq &#1L
8#I4L?!$6Yh_#
L###F###Zp##zJ~Y u#"#%#&#V_R%#w#4#x!
#,#r#5S>2NE##D#0#
Te##dODL3ab#~u9fY}>\x/8#o ~\R1?o#X2>?

~ q3dy#G#0#2i.8G##A$K8
#<q#}3X#q#y#NB(sq
5}Go##3~kR#=6}e<#ct]^jcuQA:i-m;#[NQ8)u
##ua#In#s!:!#g#+v# #?#H-XnxaEQ2#&YY6c#faN#[oZw-
Cjr##a/(.\A&0#0#F7sn (####r>&#N0#D
#e#4,/2@e#E
> # #0# ##+#9d67#5
.FH3\Ns#q

%f#_#up ##42t}&V%#{#Q]X63U2;##SV*zpb}
G#q%e#Nn"%%(##]r)
#!;^Jn#]+#1H`7a#d#GC#9!
a6Le#K#5Cgo#.KpFQ6&lD#`aD<q+q#&#P
P 91P
t_}##
zR@b[K#||
0C#2#CT8M[#pM<q#G:Dp#r+Hg\9##`R>0##nj#A7[, %&:_|
Kj9#
<e3HAU#f3#;*6b{ Z$<^ZDbZ#4~kPW=s#y##uG)\eE
#"Y-82c
#?## #4#s6c##e#1aq6#:e@&#9 #\##
8 K$NY#V\#$W
sK###u68l#%70#;###p##GkZ#+cJb *###@[$#RzD]mm#uJ
LU5##3kY###e7#8f###'aY#l #}

[J${iZU[zB(0
#
##b
#&#O#+FTi;#?UhL##ky##Br?{3#9 <o F#
fxi?L0##~.>c<|:#[KkQl%IX#e%[)Y

S2##*B7#"Iv:{44#rr*#J8Y##R&cK^g|
Cg#"2#P#i
#ir6rv/##n(gvQTUk$rY6 S3;
#s]GF##ep:&#+Bv+%x ,l
VJYX#{#d
# /?

#
=YhW eL#,PS#!#5-
Gc88G##_c[_#4Njg#LW#'##W#4rg'n#'+yd#8#['F!
`I'^#:D^j &.QyQdL#?
Kz##RbQz#Aqb1f#e~EFq#-#Zo}##uAPR
{2Y#ultZ3%+#4c#am+__nV PY!#!LqX#h0Bf-+!
+\##yk#'7Rj#DlskgU(#X!onOWKv $>ad#89G#LM
u&#YtPT4i~(#.fo#R&[!vyd+a#Trfk?|s#QAvf_2#C#)
;e4mj3#6B#[/*_:09X1

#U#[DV#O_Q#n[SLF;rz*##d1lb#"j=*r:#n-
#8 >DJOWiA-AH=#6W
##3I D
y l#.0# nuX6)N:TQw #
b(#rC!#4 ###{q:#x#"##TcU"##!
<5Db@33#j(Hb7Q#m#SS+('e %muX#$G#xf:a2s#! |!"#/M
&w;J#DkWI|#Q]U(#cHF_h#kV#ewTs [#4
#A2>M#JF hZ#u6a#jK'#" Zf12#<R
R"#h#$^8 9#Mk#c;Vsx+5!(s#?#I<U9Y,#m#h#hFel-
f##W#a)8 .GU(#L2#E#To[\Q0kj#N4 /g#"#
k2f##
Edu wAo<
UApp+2;#r6!/jda#(#/#t3#JY^Eb#^#s#<ak!
#@Np#QI#j#####|#Y+###_a_##
qc|zT#sZ6<E9#jW1aq##x#v\}?
/<#s##
#W wt<# E#e_RldQ#8##MY\H##o#-
M##g'<c9e#d#y.?9-##66P
#
#da7rn#y|!#K##r2#|R#I(([#ZS###<F+- YRr#F
X#
+###k{N#Z#eEI#1!"8#l#"H5i#A#T3#w!R{LL
%mNuC!#iM#(I H$2Q#clR!6Sa^}F#253?
<2*Er$03V6kW#Wk)8#X;iz]#XV(
;#l8>##S#/Uqn#K^#+#.I}F? ,
f##(#?#2RT@&gRRgs#]bdQkqLi##:>n#Y#!##A#HaW#^q#
u
(b#e=##1P`H
s#$6>
~y#6#: VR0Uec
###ry#z#UbFZ[3!
uyq+:mbixZUE3kXZO`Kg#Wu$aX#o[cW#pu
ET#[&Ab\#5n}#mW+{+h#_#[o+>vl]#MWj#WX(/5UYHf
EL6 S!3#~JC{]Tlz#juAVf$#|^I#uo#T6 #0j-2jE96 it
z1##$P###q#Ad#RBEP##0}!+#GTqAb%{ 0$jnUZ!zto#Ed:
^i
Z#;J#Xv^[:q##DE#
_#kc#=}#ilK#;f#X5jM#fXPZ#;k"{{5-
:*.i48\Y#p#
fil#rl7h#i_s?(#$ek6l
3j&#0:##<##E%u#q#QQZ
i#~%M3^
[<4`mB=2G%a #,#
7\v#l{;TY7##
u #HsPViBF{a\#bf#gSw]#wLIJQTZ`-
#[M"*sDLO#kl/p>#&P9}m` )# Nc2IAJAW\>#q
u%`g##O >-#n,VKGx#Tc,#~}#BHk.Y##<|
x#<x#<x#<~v t8
7v#v[Pvt*#q*#

27iT]Yg#OR{#]>@;4cn \Cgt d
k-Z`zl
e`\#gGu'S(k^5zu#%TW(##Fx^iE[ownh
I+~Y(Zr#/V=R_ma{##v%ssG
gwK#ZL#Z#C@Z.^dzG###Lu#*#F#6*{C{^#w#P,#?
[IA%f|(#t#%}pv-dKL<v#Zw?A[Vkl#5U#-VX
g+##J#1#2p#R#z##i#"c#q##v:\##gUvd{?
RgZvY#e#Ykv#KNK}VJ @o=Ol##] t^
ec"Xvz[St#j#z##A5M ##/kj## tp&,Ji +[
X
j#]_{h#kuy#ivg\j,+=:EZ 6
jK#"><38B;]tj]Z
#c#f##me&j{#x<W#N1# *TI7{
7a!(%2##d#
Z#3-O#=z6#Lc/Z=;82#WbE#?a

#'fuNcnlAWGdT*j#[Z
c,m|Zvhv#ttw#/#uW4wxK
hO#$liZ92RlhHsUJpAKM3:O#s#nQ #6^
6Cm>ZZTaU]-6jtOl1{|#aKo[z~t3IP #Vu
%SWYV5Sj6n6m/#zVN`#wN
^jaOn^Cz#=q5V:#shTa#M#PtoS#^-
c###fl_rIh4u9$*E#*gy?8\1#0w#VJ##0D?5AXW*AB#N?
,}S'2;#Yt"d=twoTYRY-WAN?wqW:Q#.c*'^m#^#V~5
#tD}ksSM$NY#T58}_EK)3m#tzZ4uvEpAy##;"["K#
hU]v#@sgvic eLpGO\QPu!
D#YYlM_aRq6GC#o_h=MnvCL## [k]KL#
Ul
\ UkU(d~;S'Vp#Z;U#
t#),#189#lIX0C##]7#TKz#!##(:#-uU`k#^u!
\H#)WI4wqv#q##Sa`0V#l-#i##
%i##~0##Q>r(zO#l~oE7=\o)4.#><(M#':im6 zqf[
M`
A Xum#_!NyA#v
A
6D#`6@{#3/DYQ*.#
O#k~<ht &{)#>#UE#U ##[vD^

M#jm`#KOkmB}9#=e_U#>K##*#TW#H0g]*1V4n}^s##X
N$%5#\$#1`ai] Dt#}#bb#xVpoJ]t#{##N0#yj!7 W+q*
b9#injM`-jjZ#9 +#Xp## 99^{de$nm6V\G` \
5##pzp0RHa#XNo#9rs2###OM###Xow#+#V=:+)hv#zt!
+^#jp
y
${?#" 4G $1?##{7+&1#YN5#dlu/p#uuPbQ{
]#M<#~wS*o###_o9cx~f~?u###E#+#u(6##xZK
Hsd#Duf(##[u]k#6e
##H-s_"b#jR#$&SEUC8######@v}H#5Uyf#IL#fY#I#0#
Vk5Xa#WZK#W^sU[J<#XH#.o#P1A_#> #;W
"#QV$,k;}#S)Z

Vit0N8#+U#w#p#mB-E
[Ro=#ATFbsni#qBH&#\3}vz,l]QrcS5;MuH y
U\0bUj#AbKX`j6|dE-+f'H#Pj^]^^#eO#;
#9k_<i#[?,n##
*jTjU##<,
mwB+5#k
5>:'LE>1]:
6eU Na>`Z.#}/>?v#Xz`k?{D)F
Wu$4VC3
fk :
IT_ta\[*w@#);q0#6GrK#jVSB]Z=#ja]##j#9:y4##Hp
#J'0#M#Y{HW##I&s +Oh \V#3UL%
l7
825P5o cFK+E
#ejB8#h`{"Z#gwcu4S2dHBfL#Yl&F&v+#E###e`6n,di.c#b"##
fEbG#9+4%LF8###^#,]l #VW #=##F y
+nIs
##dWj5#=/#1X_Tb##T[
jI.dj
D^&<#P#_ mJ^#sC7###!#ydepA# a#Y?
%LM_fV58c#kX@SWP#%~.|N#3Z#'#\\5kZXwIS9##]
{Qc\i#XvcuF##HR#",3ce k#RS,
n%~^=k,1nYNKf#E#0#!
j##TmBjoU${'Sp#a#+:`+N>Wsb#+hh#$(#bo3^<#n
kA`#'i EG5-7Z!
#rx3uArqSb6#x#rN@V3l3+#h"48Z#5,NO?
###n4#T##l#T4 FUQ,C\#5B|*#Wd O={<{/{>%.8k5M7}F
mv#}#<;#z$q#w#Xfd#_$2jU#C#kJ #ZJyUV]:l
%#2xO#,ZP@Jk,AE
x#7ic4_T=mt/ib1O)^RVG#
#6#kZ#:N.i3j-o<jZY#|*8}fN
ZET###\mf`.hO[4"[#ZD\SJQS#sf` #@Dr#5JxSLda~Uk?
[4L##y;DCE
X####+[i##m
* r{:u U#N%*Dbab####!D
AqE8#,0
8#
8L8,r~# #F$#a~W#3####+###Y1#A>mnmmTh###UPv
#ji2Qt#S \#K'TAW,Z1#z``#1c###h#A`8G<"
0#8hOhlPch{1s#`oG#4SxE aSQx#]WfM2
N&<5IeNi\Sd#`cSX#"3|].ALB##
UHp#9\b##&X:b#S#$5$
$#SW#caiulK##j# :#f#+
DaBT5m# #7
'IK
W1T=;fk#Ma#8+#Z0*WhX5\0)#Fg{.{UCT(+#y
#p`c#o
Sn51 &8# k###q1|
dCgi#[#(EV+)Y#U.&.MX#(W#;6#
%<#ACT}aXy#akJab}3#6#83.D^/\U
yfyf|q(YdW6#ef#k2>$Bj>5#N#b#%# #ec##.
#Q;]9>eu#q9d#:Nj#cgYzq#KVFHGU###T(/k#G#
2i:lp####}rF~#$#c#WfG
v=S##Un#\#y####{_)D5uPv ]#
# [k+#q#mJ#* _>!2v#
{=F /(f Y
##
#6#E#h5
Q-ABeY,5}TK#yq#B,
s_#eVT#h Y#qlK#A*H#
#'80n#R#G\a^##A3B8~(3=/QM2el')_#}~5
TC[#&m-{(kZ6GVMN_VR\I#`5#)u#2 e#).#5\4
#6
_[~x&Ol#~-#&f##ZM:T?N'!f#Dl D

l5#IJuKh#^)y#&uS^#
#X1|##Bscb
5P#C\!##X~#O#S##R&^dTl#O!]IYR
st##M7zh@#/
e`'
I@.hM#t#7#Y*&M#m#j1.#bEMR4Kv$?F\#jc#v#(0 G|
a)"l9lv***#I1(/uY6}qz

#x]I`Nd#lR[:#{rS#jb#}##s#E&G+/#+#"F^
g#w ##&
#c0E.#wv#s8>##:0zz#h ZeRn:_'McbE|

mEf[gs.2]#}xmE,c'#X[i-'~[R#Z\qR#Ks*gWYDzv
T8###HhI$4pkSGap]#-__M#T#8J:c9ElK73j##
Y#nI]#kk$&n#VidE/Z##Q Bk.<[ST qn#g&ik#97

^V#=ohq"#A#`$#7sv=##TgtWt##Su6QT[#n5###*g#
y(;(#.4s#Zv#_#Wt=yYV/r68#jortV#u]}u][kU^~y<#el=a
NZ6m
.#JNrX#BMU##Or#Z#I
zV#{#w74

Q qz* d
bEOUqR#bO
X\##<xX
] i5#_#2TrY/tm#(jCt[bug##L&|mm9#$XWeS
:lJ#R#";Ez%w3
Rv:.#em#o0r#&!v=W{{{m#qwm$?
#.w.v#W#<C'7##50~u: #VtV=8&`<#\oEudT=qWU#/uZ#v
s7c:"#l3##
#-/`}Tk,kP[h#3a{S5jS$+#E=USUMY&A]_#KX#f#6Uf:P##-
N-
:N&5=;U`Kwm
Csiwku+#Z)3##\[#R/*#QH ##57b;;rSyb,
/*DptK;B#u~A8um/b]CX:##G#1C>K^Lm#V,Jl\XK
#
m7lVQVj# #X'Y']:MF^
?#a~=X)##("<
%B ,)z{e##ABPi###sE.#_K#.##u2^ xZ 8M
#vP"#-_Zo6}Kdk]p#)
^GYl#xJSP##^z##]M\Z!
#.####0#"##]a!
##$rl,2GqL+###Y#$.f)K.d/#<x#<x#<x#<x#<x!
v.5l-+vxjmzeN#g^-#`#W#Jm#*;#J#n7
"Wgq1j|R\z#OlPtz#}{J_\eU2`l#Ih-KO#W?
S[u##Sa{$#T*
T TYV.YuQ* B?zi
L# j#Wt_##.r$("NK!
c###B0{8<#^#(#w##}Fv
zwo}#V7XpM#*+}z#\u_ztu|Q]&{_##U]
EVa7X#A[#a
;Xt#ljm{$#x##:~~
ziu#O ?
d[#?_C#>W#{#q# tk#}P
8%
U{beX3W<J#;n##fjXND#q *F.=a G52yK8
j*4]T&VcvGco
2>*zQwZ{1`o[#t{q
=9{W.=W#=jkp#tI U.?ZV#,&<hnV=C
E,}##i9VY;6Z~#QyFED{nNV##mt?Q!PgWOPA?

CeVh)wK#g`#Q

@%W# n.m#eK+Rm#v:###j3
##si[Gar 2&y{#J`i#u`G}#p##(F[Y @
%Q#:N###"FK`(uq#/9 6eGwB5:#\nM}c
v##UERMsA 'ES
m~j#E6 N;#[:ER#{Zoz[n#`l#4U#
`\{;#VYh#jzx#~#Mg6#_?Ox^y.#k#geVt#W__l#2
wX##SVB# A#IuzVn`
g#T=oL"e7n#[cy|#qpt#Y&VR)#B9z#Cj!
]uFa]#$t]j>###TYATWM##1#4#X&9_X`B#ZNW2% M##
y5j/^5N-#5z
-Tf>W[/}` :3#6#Quwm#hkH2#jY-u
##L#&!t#<8:h h{6#X^$#x)v#%#D#J-U#6|=f
##O#^5r>l~oCG~]#w#O##M# j=g/#?aF?
J7^2!#VVE?H##t_9` #C#l7;2_c{K#l#`,Z^Jl#
+XX_Jpws-`}#%#&('+#6W0 Cp|
uiU)GU^k##-Ei?
#l~y##@
N ##~<l*G;]N

Nb\,#Y uc #'
^Qk]}p#U8[u~AMu`]R#SzOjT#7M#O0#^XumUU1
&VT#Y/#Q##z Z#6E4iq#S#Z#eb6'#]{#c#q"t\#%8a#ow#[-
K\N8L#,~ljob:D-bBk#%l_#;+;#@(p,-##;Y6
D+###kYU[/*L##mi#U6\c>P]U |PF"S!
##tV&awlVU5##ve#l]U##EE}\SzPDyhV*Q#
%kd#ZtvDgK\##W\54mm#El
wQ#w##8lR#^mU)#O#j
A#,#Wf
# j&0j?#f*##_###
}# i bx
3~_6v1s6ZtvbRz#"C|> z9E#C?&7E#eG#4 >8@
#[aee#8/#i#nL#EI#lG*Ng_KM[Xw214U us~e{KA}B4(;
#4#Q&aExRmAh#5?
_xAR#6##KQpP#cv###)#X6+m:dUub#M#
a8"GGm4#,)nRNNNN
NK V _rLE?
#

d2k3Dl=Y#/gh.#+K+fQFcW]m-u%%z#Tj

xn=BsV_'#+b`PjDS)#Bt^&j9km
[ yW#S#e(G#rjpIV#If
&T$#8#L##`:eUO~#45;.>#Z##__C#o[ IW*=+a#oZ#~D!
<Ie#5d#]u79~#v=~wC4alP*:smVp|=M{ZuT% v ##D_#
YY3kR#%M&#!:':G#ts]dar#a;##SW{3s #-:d\
}#
%H]~mj}`q#
8 #^s #7#fl(#QK1'`[A#`tB #X#rBU$
%2#jSYQ#w###mPC3#L?k:]u# u\zXn
%>#HO#cc'#FMA0U-
\Zy#,sO
;##q#U:U~JU#<#znjjaDR|
###5"_{#EiLq#MB{Q#We?#.#*x!6#
%#F#*.IVk8#n#d&B#cLk###@Uje$Kn vn"m#S';m#\
#TcSv >b#4v#a#m<*kux##+#mK>v7j'##y#
Uabry#S#5l#
`jL'(2iT-"&Xdsu'Wf# _m5\#
%}fI51^..
=+nnBc##dm#UF"##wYU;7 ##m##
y
ydukB ow'#c
ys [^#o9KSI

pUvKf8fBc=m6#GR#o N#SeRGr:400uYdfcb1bd#U
o#{2m#tfHf_q1H[1hZ4lmJ[#3[f =#!|
qVLG;*#hiMVd&SI+Hk#g#mi#$V%#;#mma##5fK#:v
8mn1j#d16l
4
*iI(dy3<ziOAOH###^#HQkq]3#PMs_;#vS0^4bu#
kX#=yj%ir.
[jt#fv##Mk
#5)J #r2ouMY#6U#}i5=###L#Q
-#SY##.#E+a-Co?e##[:#W-=4k]EMkzu9D[Uq
3>2]#Mk<DfEnop~6#X5##RDD#8T @eS-
7h2BkE#)##PuoAtu###gb}{v#?#nX#|}TL=;6#
#L##?;c,
V M}#3 #}NpTvYO'#A.(c1rLP#oYh*61*:#
#2TTM9
#YNC,J#
#_ 5%+6,$&e4c`mOXvx=Y'aJ.kg0~
%=)tK#jwPp##J%

x#=c(;o#l#TqYb#H3lR#<KM\,Fgd3V6C#J
]mG@E?s9U#.WU#p##{E;):T 2B
IS#Z##E##wHv##V>S}=<dCbF,f&WN_mz#)rmK#ePC]6
Yz%_^@,#WhNNU}]* # =n#pii9
(MUske#fyE;^#4YJ##lea#'+$?
#*]r#eFNU#2WT#@Q*T
#y>D ## #\O]Ku]`&46##
G
kY&krWhE$J#Pn#w##~F0=KRJFW#
.z]y_Mdu}=-
s)#gM##ngJ<^blK7f#nk*J
d}
gmc##a/#sDU/bogNZ _Dj#&D8iUlDMr# (Fk#KK#|
Jo#ELXJn#6b!-#h#3 0##y#De,KdbFiNtv####UMJh-
SL1T###F#"#TtfJOFI`(##eB5
>
0#{<

#i ` :#6V#ha_1)#R
#< #<x#<x#<x#<
x#<x#<x#<x?#n####n#! x#3Ss'&m\Si|SM6&PNG
#
###IHDR############y#3####gAMA####### pHYs############# #IDATx\
{xU_s#b#& *##p,#$Xu|UpZ#q3T;:#oB}UGl#3Vd"V|
#"( b+#"yyN=q#|kZ' 1
T*#u]UU1B###d}Mv#4Sc~erLI`|P#x)K<)m'AB
##WiZ#e&{}v<4k;cY#X/M###:L&Sm O!##%9k
#EoY=~#AvDu]vB"LNc#TbwR(6lyRKHI%,C#,sKp##
w 7f###`#####(###################
###5################# #l#####
############X#################D###h#t#t#p#:#/#/#n#a#g#o#y#a#.#a#p#a#c#h#e#.#o#r#
g#/#b#u#g#z#i#l#l#a#/####b###/##
###0###################D###T#i#m#e#s###r####W~#`~#`X######PsXs##
&############D###C#o#u#r#i#e#r####W~#`~#`X######PsXs##&######
######
####`######
#######.##########
######### ###@##n#####?###"
##d#######d#########@########################## #
#########@#@#########`#`#########################|
############q######j###########################
###################################################################################
############################ #######!###############
%#######$#######"###############&#######'#######(#######)#######+#######,###
###-
#######*#######################.#######/#######0#######2#######3#######5###########
####7#######8#######9#######:#######<#######>#######@#######B#######D#######F######
#

#######H#######################I#######J#######L###############N#######O#######P###
####Q#######S#######T#######U#######W#######Y#######
#######Z#######[#######\#######]#######_#######`#######a#######b#######c#######d###
####e###############f#######g#######h#######i###############################
#######j#######################################################1#######4#######6###
####;#######=#######?
#######A#######C#######E#######G#######K#######M#######R#######V#######X#######^###
####?
#####R##$#####T\lV################P#B##$######6T~FKaW&#/######
######P#R##$#####0jA_Bw@*^^v-
##B###########P#c##$##################################0##
######@##############################################################
################u#;|)3#;#######g################4###Z###d###Z###d####s#7##
#####Y#m#8####p##########p###p##########@#######<######4###!
###d###!
###d########`#######g####;################<######4###d###d###d###d########`##
#####g####;#######################
########################^##########_#_#_#P#P#T#9####@######8##########?
##########
################################h##########_#_#_#P#P#T#2#0#0#1####D######
<######4###############X####################################?##
############%#####U###############################################Scalable
Apache for Beginners##################Aaron Bannert
aaron@apache.org###(##################################################
#################
###############################################################################
Measuring Performance##################What is Performance?
###$############################################################################
########How do we measure performance?##############J###BenchmarksRequests per
SecondBandwidthLatencyConcurrency
(Scalability)###&#############@#################@################################
######################Real-world Scenarios##############?###Can benchmarks tell
us how it will perform in the real world?
###4###############>#####################=#######$##########################>####
################################################What makes a good Web Server?
##############3###CorrectnessReliabilityScalabilityStabilitySpeed#######
#####################################Correctness##############v###Does it
conform to the HTTP specification?Does it work with every browser?Does it handle
erroneous input gracefully?#######
#####################################Reliability##############N###Can you sleep
at night?Are you being paged during dinner?It is an appliance?
#############################################Scalability##############d###Does
it handle nominal load?Have you been Slashdotted?And did you survive?What is your
peak load?
###H###8#############################+###########################################
#####+#################/##############
########### #########################Speed (Latency)##############I###Does it
feel fast?Do pages snap in quickly?Do users often reload pages?
###$###J###########################>#########################
#####################$###Apache the General Purpose Webserver###############
#######################A###Apache developers strive for#correctness first,
and#speed second.###:###B######################################
##########################################################
###Apache 1.3##############?###Fast enough for most sitesParticularly on 1 and 2
CPU systems.###################
#####################
###Apache 2.0##############k###Adds more featuresfiltersthreadsportability(has
excellent Windows support)Scales to much higher loads.###P#######################
####################################### ##############
###
###################################################################(###Apache
HTTP Server#Architecture
Overview#######)#################$#######################
######################################################.###C#l#a#s#s#i#c# ##
P#r#e#f#o#r#k## #M#o#d#e#l########
#######################################_###Apache 1.3, andApache 2.0
PreforkMany ChildrenEach child handles one connection at a
time.#######`#########_################################
#########;################################################8###M#u#l#t#i#t#h#r#e#
a#d#e#d# ## W#o#r#k#e#r## #M#o#d#e#l###############P###Apache 2.0 WorkerFew
ChildrenEach child handles many concurrent
connections.#######Q#########P##########################################>########
############################################Dynamic Content:
Modules##############<###Extensive APIPluggable InterfaceDynamic or Static
Linkage
#######<#####################=#################################################
###In-process Modules##############S###Run from inside the httpd processCGI
(mod_cgi)mod_perlmod_phpmod_python
mod_tcl###8###"#########2###########################

#######2############Z#############################################################
#############################################################################Out
-of-process Modules##############m###Processing happens outside of httpd (eg.
Application Server)Tomcatmod_jk/jk2, mod_jservmod_proxy
mod_jrun###6###E#############################E##########################Z########
###############################"#################
################################################################################
Architecture: The Big Picture##############
################################################################################
#####Terms and Definitions##############2###Terms from the Documentationand the
Configuration#######3#########2#################################################
#########
#### H#T#T#P## ##############|###HyperText Transfer ProtocolA network protocol
used to communicatebetween web servers and web clients (eg. aWeb
Browser).###X#############`######################/###############################
#########################$###
#########_##################################################################0###
# R#e#q#u#e#s#t## #a#n#d# ## R#e#s#p#o#n#s#e## ##############C###Web browsers
request pages and web servers respond with the result.###6###D#########
#################################################################################
###
#### M#P#M## #################Multi-Processing ModuleAn MPM defines how the
server will receive and manage incoming requests.Allows OS-specific optimizations.
Allows vastly different server models#(eg. threaded vs.
multiprocess).###6##############################9#################k##########>##
############################################
########################"#################################8#### C#h#i#l#d#
#P#r#o#c#e#s#s## #a#k#a# ## S#e#r#v#e#r## #########################
########################C#a#l#l#e#d# #a# ## S#e#r#v#e#r## #i#n#
#h#t#t#p#d#.#c#o#n#f##A# #s#i#n#g#l#e# #h#t#t#p#d# #p#r#o#c#e#s#s#.##M#a#y#
#h#a#n#d#l#e# #o#n#e# #o#r# #m#o#r#e# #c#o#n#c#u#r#r#e#n#t# #r#e#q#u#e#s#t#s#
#(#d#e#p#e#n#d#i#n#g# #o#n# #t#h#e#
#M#P#M#)#.####X###{####)SQ$@],#bE!
lJ#(#c)#UH##)9D
#+#bp8lg~g$# irYXzrx#
%##).SOsrV#[1#xj/+ rOc###
rQd]`Q%xr:MO,?&##,")9><zE+#p#U##\F###.
#7s #s##)X
#"HGDC<kT#*#0' #<Bn!S#d+yF0%Oz!Q#*m)!##B&#lu#|
B af@D;sLOO msoii wCN< ##?~|UU##T?
6#'O#@#uuc#>|xVX1---;|{]]]CC##X\#Mcg

[./R%F%#U#VS,;H#^#y#/Nv_j#################
###########
#####################G##################################,#########################
##############L################################################ ####
P#a#r#e#n#t# #P#r#o#c#e#s#s## ##############_###The main httpd process.Does not
handle connections itself.Only creates and destroys children.###$###`#########
#################R################################Q##############
###################################### C#l#i#e#n#t## #################Single
HTTP connection (eg. web browser).Note that many web browsers open up multiple
connections. Apache considers each connection
uniquely.###Z###*#########e#########*#########-###################################
################################################u##############!
###################################### T#h#r#e#a#d## #################In
multi-threaded MPMs (eg. Worker).Each thread handles a single connection.Allows
Children to handle many connections at
once.###&###############################`##########,###########################
############h########################## ##############$###########!
#########################Apache Configuration##################httpd.conf
walkthrough#################
################################################
%###########"#########################Prefork
MPM#######################################6###A#p#a#c#h#e# #1#.#3# #a#n#d#
#A#p#a#c#h#e# #2#.#0# #P#r#e#f#o#r#k##E#a#c#h# #c#h#i#l#d# #h#a#n#d#l#e#s# #o#n#e#
#c#o#n#n#e#c#t#i#o#n# #a#t# #a# #t#i#m#e##M#a#n#y# #c#h#i#l#d#r#e#n##H#i#g#h#
#m#e#m#o#r#y# #r#e#q#u#i#r#e#m#e#n#t#s#### Y#o#u## l#l# #r#u#n# #o#u#t# #o#f#
#m#e#m#o#r#y# #b#e#f#o#r#e# #C#P#U##
###,#####################S#################&##############&#####################
################Prefork Directives (Apache 2.0)###$### #################
########################################################K###StartServers
MinSpareServersMaxSpareServersMaxClientsMaxRequestsPerChild###
###L################'###########$#####################
###Worker MPM#################Apache 2.0 and laterMultithreaded within each
childDramatically reduced memory footprintOnly a few children (fewer than
prefork)###$############o################################z######################
##########(###########%#########################Worker
Directives##############N###MinSpareThreadsMaxSpareThreadsThreadsPerChild
MaxClientsMaxRequestsPerChild###
###O################)###########&#########################KeepAlive
Requests#######
######### #####################y###Persistent connectionsMultiple requests over
one TCP socketDirectives:KeepAliveMaxKeepAliveRequests
KeepAliveTimeout###&###J#########0#########J#######0################J#######0####
############*###########'##############+###########(#####################.###Ap
ache 1.3 and 2.0#Performance Characteristics##############'###Multi-process,
Multi-threaded,or Both?
#######(#########'########################,###########)########################
#Prefork###
##############################H#i#g#h# #m#e#m#o#r#y# #u#s#a#g#e##H#i#g#h#l#y#
#t#o#l#e#r#a#n#t# #o#f# #f#a#u#l#t#y# #m#o#d#u#l#e#s##H#i#g#h#l#y#
#t#o#l#e#r#a#n#t# #o#f# #c#r#a#s#h#i#n#g# #c#h#i#l#d#r#e#n##F#a#s#t##W#e#l#l#-
#s#u#i#t#e#d# #f#o#r# #1# #a#n#d# #2#-#C#P#U# #s#y#s#t#e#m#s##T#r#i#e#d#-#a#n#d#-
#t#e#s#t#e#d# #m#o#d#e#l# #f#r#o#m# #A#p#a#c#h#e# #1#.#3### Y#o#u## l#l# #r#u#n#
#o#u#t# #o#f# #m#e#m#o#r#y# #b#e#f#o#r#e# #C#P#U#.##
################n#################-
###########*#########################Worker##################Low to moderate
memory usageModerately tolerant to faulty modulesFaulty threads can affect all
threads in childHighly-scalableWell-suited for multiple processorsRequires a mature
threading library#(Solaris, AIX, Linux 2.6 and others work well)Memory is no longer
the bottleneck.###(######################.#########
%################.###########+#####################$###Important Performance
Considerations##############F###sendfile() supportDNS considerationsstat() calls
Unnecessary modules#################?
##############/###########,#########################sendfile()
Support##########################################No more double-copyZero-copy*
Dramatic improvement for static filesAvailable onLinux 2.4.xSolaris 8
FreeBSD/NetBSD/OpenBSD Z[??]...* Zero-copy requires both OS support and NIC driver
support.###d###R#########Z#7#########Z###########Z#=###########Z#R#########7######
#############<######################,###p###################################H#####
#########0###########-#########################DNS
Considerations#################HostNameLookupsDNS query for each incoming
requestUse logresolve instead.Name-based Allow/Deny clausesTwo DNS queries per
request for each allow/deny
clause###`#############<###################7#################<####################
##############################$#############(#################_##############1###
########.#########################stat() for Symlinks###############
#######################,###OptionsFollowSymLinks
SymLinksIfOwnersMatch###&#############%#################
%########################&################2###########/########################
#stat() for .htaccess files#######
####### ##################################AllowOverridestat() for .htaccess
in each path component of a requestHappens for any AllowOverrideTry to disable or
limit to specific sub-dirsAvoid use at the
DocumentRoot###&##########################################R#############
####### #########4#################(#########################
################3###########0#########################stat() for Content
Negotiation#################D#i#r#e#c#t#o#r#y#I#n#d#e#x##D#o#n## t# #u#s#e#
#w#i#l#d#c#a#r#d#s# #l#i#k#e# ## i#n#d#e#x## #U#s#e# #s#o#m#e#t#h#i#n#g# #l#i#k#e#
#t#h#i#s# #i#n#s#t#e#a#d##D#i#r#e#c#t#o#r#y#I#n#d#e#x# #i#n#d#e#x#.#h#t#m#l#
#i#n#d#e#x#.#p#h#p# #i#n#d#e#x#.#s#h#t#m#l###m#o#d#_#n#e#g#o#t#i#a#t#i#o#n##U#s#e#
#a# #t#y#p#e#-#m#a#p# #i#n#s#t#e#a#d# #o#f# #M#u#l#t#i#V#i#e#w#s# #i#f#
#p#o#s#s#i#b#l#e####z#############A#########1#####################1###############
##A#########1##############
###
###################################Z#############A################################
#####################*#################
##############4###########1#########################Remove Unused
Modules##############z###Saves MemoryReduces code and data footprintReduces some
processing (eg. filters)Static modules are faster than dynamic###6############
#########N################
#######N##############F#################3##############6###########2############
##7###########3#########################Testing
Performance##################Benchmarking
Tools#######8###########4#########################Some Popular
Tools##############*###abfloodhttperfJMeter...and many
others###$###+######################################$############################
##################9###########5#########################ab###
###########################Q###Simple Load on a Single URLComes with ApacheGood
for sanity checkScales
poorly#######:###########6#########################flood#################Prof
ile-driven load testerUseful for generating real-world scenariosI co-authored it
Part of the httpd-test project at the ASFBuilt to be highly-scalableDesigned to be
extremely
flexible#######c#################W##############<###########8###################
######JMeter###
###########################i###Has a graphical interfaceBuilt on JavaPart of
Apache Jakarta projectDepends heavily on JVM
performance#######=###########9#########################Benchmarking
Metrics##############q###What are we interested in testing?Recall that we want
our web server to beCorrectReliableScalableStable
Fast###:#############)#########&#################)#########&################>####
#######:#####################!###Benchmarking Metrics:
Correctness##############a###No errorsNo data corruptionProtocol compliantShould
not be an everyday concern for admins
###.###a#########Z###########Z#a########################$###1#################'##
######################@###########;#####################!###Benchmarking
Metrics: Reliability##############b###MTBF - Mean Time Between FailuresHard to
measure programmaticallyBetter to judge
subjectively#######A###########<#####################!###Benchmarking Metrics:
Scalability##############_###Predicted concurrencyMaximum concurrent connections
Requests per Second (rps)Concurrent
Users#######J################################B###########=#####################
####Benchmarking Metrics:#Stability#################Consistency, Predictability
Errors per ThousandCorrectness under StressNever returns invalid informationCommon
problem with custom web-appsWorks well with 10 users, but chokes on
1000.###*############.##################.##################D###########>#######
##################Benchmarking Metrics:#Speed#################Requests per
Second (rps)Latencytime until connectedtime to first bytetime to last bytetime to
closeEasy to test with current toolsHighly related to
Scalability/Concurrency###B###"#########Z#H#########Z#K#########Z#"#########H#####
####K################################################E###########?
#########################Method#################Define the problemeg. Test Max
Concurrency, Correctness, etc...Narrow the scope of the problemSimplify the problem
Use tools to collect dataCome up with a hypothesisMake minimal changes,
retest###~##############" ##.########### ## ##########" ##############
##Q##########" ##########.#######
###################Q################################################F###########
@##############G###########A#########################Troubleshooting###########
#######Common pitfallsand their
solutions#######H###########B#########################Check your
error_log##############r###The first place to lookIncrease the LogLevel if needed
Make sure to turn it back down (but not off) in
production###&###8#########;#########8#######;################$#######
#########E##############I###########C#########################Check System
Health#################vmstat, systat, iostat, mpstat, lockstat, etc...Check
interrupt loadNIC might be overloadedAre you swapping memory?A web server should
never swapCheck system logs/var/log/message, /var/log/syslog,
etc...######F#################################################*#########F########
#########################################################*####
###
#################################################################################
############################################################
##############J###########D#########################Check Apache
Health##################s#e#r#v#e#r#-#s#t#a#t#u#s##E#x#t#e#n#d#e#d#S#t#a#t#u#s# #
#(#s#e#e# #n#e#x#t# #s#l#i#d#e#)##V#e#r#i#f#y# ## h#t#t#p#d# #-#V## #p#s# #-#e#l#f#
#|# #g#r#e#p# #h#t#t#p#d# #|# #w#c# #-#l##H#o#w# #m#a#n#y# #h#t#t#p#d#
#p#r#o#c#e#s#s#e#s# #a#r#e# #r#u#n#n#i#n#g#?####^#############!
#########/#########&###########################################/#########&#########
###t#################################################################
###########################
################################q###########S#########################server-
status Example#######K###########E#########################Other
Possibilities##############r###Set up a staging environmentSet up duplicate
hardwareCheck for known bugshttp://nagoya.apache.org/bugzilla/
###<###N#########$###################N#########$######################"###N######
#"###########################################################N###p##########
L###########F#########################Common Bottlenecks##############t###No
more File DescriptorsSockets stuck in TIME_WAITHigh Memory Use (swapping)CPU
OverloadInterrupt (IRQ)
Overload#######M###########G#########################File
Descriptors#################Symptomsentry in error_lognew httpd children fail to
startfork() failing across the systemSolutionsIncrease system-wide limitsIncrease
ulimit settings in apachectl###j### #########Z#V#########Z#
#########Z#B#########Z# #######V#######
#########8######### ########################6###
#################h##########################################N###########H#########
############ ###TIME_WAIT##############K###SymptomsUnable to accept new
connections(Connections are established, but no data received)CPU under-utilized,
httpd processes sit idleNot Swappingnetstat shows huge numbers of sockets in
TIME_WAITMany TIME_WAIT are to be expectedOnly when new connections are failing is
it a problemDecrease system-wide TCP/IP FIN timeout###### #########n#!
#########n#4###########n#n#########n#X#########n#(#########n# #########!
###########4###########n###########X###########'##########################,###r###
##############
###############################O###########I#########################Memory
Overload, Swapping#################SymptomsIgnore system free memory!Lots of
Disk Activitytop/free show high swap usageLoad gradually incrasingps shows
processes blocking on Disk I/OSolutionsAdd more memoryUse less dynamic content,
cache as much as possibleTry the Worker MPM###`### ##################
#########W######### ##################
###########V##############################g#######
#######################P###########J#####################
###CPU Overload#################Symptomstop shows little or no idle CPU time
System is not SwappingHigh system loadSystem is sluggishMost of the CPU time is
spent in userspaceSolutionsAdd another CPU, get a faster machineUse less dynamic
content, cache as much as possible###~### #########Z##########Z#
#########Z#Z#########Z# #########/#####################Z#########
###########Y##############################Q###########K#########################
Interrupt (IRQ) Overload#################SymptomsFrequent on big machines (8-
CPUs and above)Not SwappingOne or two CPUs are busy, rest are idleLow system load
SolutionsAdd a second NICbind it to the first or use two IP addresses in Apacheput
NICs on different PCI busses if possible###t### #########Z#r#########Z#
#########Z###########Z#d#########Z# #########r#########
#######################d####
###
##########################$##############R###########L##############S##########
#M#########################Next Generation Improvements##############
####################T###########N##################### ###Linux
2.6#################NPTL and NGPTNext-Gen Thread Libraries for LinuxAvailable in
RedHat 9 alreadyO(1) scheduling patchPreemptive Kernel patchAll improvements affect
Apache, but the Worker MPM will likely be the most affected.
###B#############Z#C#########Z##########Z###########C#########################?
###############################U###########O##################### ###Solaris
9##############t###1:1 threadsDecrease thread library overheadImprove CPU load
sharingsendfile()-like support (since late Solaris 7)###6###
#########:#########/#########
#######:#######/##############F#################'##############V###########P#####
####################64-bit Native Support#################Sparc had it for a
long timeG5s now have it (sort-of)AMD64 (Opteron and Athlon64) have itNoticeable
improvement in Apache 2.0Increased Requests-per-secondFaster 64-bit time
calculations###&############>################>############$#############8######
###########z##############Z###########Q##############[###########R##############
###########The End##############
###Thank You!/############?
##########################C##########################\##########################
]##########################^##########################_#########################
#`##########################a##########################b########################
##c########### ##############d###########
##############e##########################f###########
##############g###########
##############h##########################i##########################j###########
###############k##########################l##########################m##########
################n##########################o##########################p#########
####################
################ ################`## ##############33#####`##
#############S#f#3##f##`## ###############33#g#`##
################f####`## ########www######3#PP###`##
#######ZX###db#mo######`## #######\####q>9#y`####`##
########3f##3f####f###`## ########3f###3#FK#f###`##
###hk]##www####f#
#`## ###ff##>>\##`Y{#ff###`##
###R>&##- ###{p#_/##
######>#####?###"
##d#######d#########@##############,##########|#####?###"
##d#######d########@############## ########### # ##########"
#@########### #`################## ##n#####?###"
##d#######d#########@##############
########### # #########@#@#########`#`###############P##R########
############### ###### ######## ######@######## ######`########
###########`##
###############p##>###############################################################
####>###################################################################
#X######P###########################(##### ######################
####################
#########
####6#########~#############################
#################P########################T#################
###Click to edit Master title style#######!########
###!##################
#########
####0#########~########################
##########################################
#################R###Click to edit Master text stylesSecond levelThird level
Fourth levelFifth level#######!##########
##########
########
###S#################
#########
####0#########`~########################
##############`##`#########################
P#####################*##########################################
#####################
#########
####0#########~########################
##############`###################### ####
R#####################*############################################
#####################
#########
####0##########~######################## ##############`#
##########################
R#####################*############################################
################D####
#########
##s############A########################f#e#a#t#h#e#r#.#j#p#g# # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # #0#0#0#1#6#2#0#0###G#a#n#d#a#l#f# # # # # # # # # # # # # # # # # # # # #
# # # #B#8#A#9#E#E#A#E#:#####"#################`##/####H#####
#########
####0################ h############# ###?########
##############33##### ##$###B#l#a#n#k#
#P#r#e#s#e#n#t#a#t#i#o#n#######################
#z######r###`################
######(##### ####*#######X#########
###################
########
####0#########P######################## ##################P#
###################
####P#####################*##########################
###############
#####################
########
####0################################# ################ #
########################R#####################*############################
###############
################d#####
########
##c##$########################## #?################
##############################
########
####0################################# ##############
@###########################################R###Click to edit Master text
stylesSecond levelThird levelFourth levelFifth level#######!##########
##########
########
###S#################
########
####6#########0#############################
##############`###P#################### ####
P#####################*##########################
###############
#####################
########
####6###################################### ##############`#
#########################
R#####################*############################
###############
################H#####
########
####0##############h############### ###?########
##############33###########################################
##########0########################(##### ######################
###############l#####
########
###C#######Cr###########################p########################
#################l#####
######## ###C#######0:r######################## `# #
#######################
#################H#####
#########
####0################ h############# ###?########
##############33###########################################
##########@###########D#####0######(##### ######################
#####D#########H#####
#####D###
####0################ h############# ###?########
##############33###########################################
##################################(##### ##########d%#####
###############l#####
########
###C#######PZ}###########################p########################
#################l#####
######## ###C#######p[}######################## `# #
#######################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
##################################(##### ######################
###############l#####
######## ###C#######~###########################P###################
####
#################l#####
########
###C#######0####################################################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
##################################(##### ############0########
###############l#####
######## ###C##################################P###################
####
#################l#####
########
###C#######P####################################################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
###################################(##### ########H# T#####
###############l#####
######## ###C###################################P###################
####
#################l#####
########
###C#######p####################################################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
###################### ############(##### ##################
##### #########l#####
##### ## ###C##################################P###################
####
#################l#####
##### ##
###C#######0####################################################
#################H#####
##### ###
####0################ h############# ###?########
##############33##########################################
########## ###########$############(##### ######################
#####$#########l#####
#####$## ###C##################################P###################
####
#################l#####
#####$##
###C#######P####################################################
#################H#####
#####$###
####0################ h############# ###?########
##############33##########################################
##########0###########(############(##### ######################
#####(#########l#####
#####(## ###C###################################P###################
####
#################l#####
#####(##
###C#######p####################################################
#################H#####
#####(###
####0################ h############# ###?########
##############33##########################################
##########@###########,############(##### #########D##########
#####,#########l#####
#####,## ###C##################################P###################
####
#################l#####
#####,##
###C#######0####################################################
#################H#####
#####,###
####0################ h############# ###?########
##############33##########################################
#####################0############(##### ####X######*#########
#####0#########l#####
#####0## ###C###################################`###################
####
#################r#####
#####0## ###S#########################################0#
########################
#################H#####
#####0###
####0################ h############# ###?########
##############33##########################################
#####################4############(##### ##################
#####4#########l#####
#####4## ###C#######$###########################P###################
####
#################l#####
#####4##
###C#######@#####################################################
#################H#####
#####4###
####0################ h############# ###?########
##############33##########################################
#####################8############(##### #############
#####8#########l#####
#####8## ###C###################################P###################
####
#################l#####
#####8## ###C#######
"####################################################
#################H#####
#####8###
####0################ h############# ###?########
##############33###########################################
##########P###########<#####0######(##### #######|######
#####<#########H#####
#####<###
####0################ h############# ###?########
##############33########d###################################
########
##############@###########(##### ####7#########$#####
#####@#########l#####
#####@## ###C#######
%###########################p########################
#################H#####
#####@###
####0################ h############# ###?########
##############33##########################################
######################H###########(##### ######################
#####H#########l#####
#####H## ###C#######%###########################P###################
####
#################l#####
#####H## ###C#######
%#####################################################
######################
#####H###
####6####@&#################################################P
0###
##5#####################Child###################################
#####H###
####6#####'#######################################################
6#####################Parent###################################
#####H###
####6####'#################################################
#
##5#####################Child###################################
#####H###
####6####[}################################################# ##
##5#####################Child###################################
#### H###
####<####X}########################################################t#
#:
##P#####################& #(#1#0#0#s#)####$###
######################################p###b#
####
H########H#######Z###########G#0*##H#I################################
#########x
## ###p###b#
#####H########H#######Z###########G#0*##H#
I#############################################
###p###b#
#####H##@#####H#######Z###########G#0*##H#l##I########################
#####################P
###H#####
#####H###
####0################ h############# ###?#####?
##`###############H###H##
H######################H###H###H######################H###H###H#############
##############33#########
#################################
######################L#####
#####(##### ####################
#####L#########l#####
#####L## ###C#######q###########################P###################
####
#################l#####
#####L##
###C########uq#####################################################
######################
#####L###
####6####0vq#################################################
##
##5#####################Child###################################
#####L###
####6####p7##################################################p#@####
6#####################Parent###################################
#####L###
####6#####7################################################# #
##5#####################Child###################################
#####L###
####6####8################################################# ##`
##5#####################Child###################################
#### L###
####<####P9######################################################
4#~#
##N#####################&
#(#1#0#s#)####$##########################################0####
####
L###
##c##########A######################
#t#h#r#e#a#d#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#1#F#E###G#a#n#d#a#l#f# # # # #
# # # # # # # # # # # # # # # # # # # #B#8#A#9#E#E#A#E#:##########t##G
###0####
#####L###
##c##########A######################
#t#h#r#e#a#d#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#1#F#E###G#a#n#d#a#l#f# # # # #
# # # # # # # # # # # # # # # # # # # #B#8#A#9#E#E#A#E#:#############s
###0####
####
L###
##c##########A######################
#t#h#r#e#a#d#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#1#F#E###G#a#n#d#a#l#f# # # # #
# # # # # # # # # # # # # # # # # # # #B#8#A#9#E#E#A#E#:#############
#######
####L###
####N#####:###########G#[##H#N###############################
#
########
0###H#####################10s of
threads########################################p###b#
#####L########H#######Z###########G#0*##H#I##########################
###############8# ###p###b#
#####L########H#######Z###########G#0*##H#
I##########################################H## ###p###b#
#####L##@#####H#######Z###########G#0*##H###I########################
##################X#
###v###b#
#####L##@#####N#######Z###########G#7###H#-
##I#s#############################################u#
###H#####
#####L###
####0################ h############# ###?#####_################
L######################L##############################L#########################
#####L##############################L#############
##############33##########################################
########## ###########\############(##### #####################
#####\#########l#####
#####\## ###C#######<###########################P###################
####
#################l#####
#####\##
###C#######P<####################################################
#################H#####
#####\###
####0################ h############# ###?########
##############33##########################################
##########0###########P############(##### ######################
#####P#########l#####
#####P## ###C#######;###########################P###################
####
#################l#####
#####P##
###C#######;####################################################
#################H#####
#####P###
####0################ h############# ###?########
##############33########k##################################
############@######
####X############(##### ####################
#####X#########l#####
#####X## ###C########=###########################P###################
####
#################l#####
#####X##
###C#######p=#####################################################
######################
#####X###
####6####=###################################################`
0#P###6#####################Parent###################################
#####X###
####0####@##########################################`#0#@###
6#####################Tomcat###################################
#####X###
####6####>################################################# ##
##5#####################Child###################################
#####X###
####6####P?#################################################
#
####5#####################Child###################################
#####X###
####6#####@#################################################p#P #
##5#####################Child##############################p###b#
#####X########H#######Z###########G#0*##H#)I#4#######################
################P#x
###p###b#
#####X########H#######Z###########G#0*##H#I#4#######################
################P#h
###p###b#
#####X##@#####H#######Z###########G#0*##H#
##I#########################################P##p####p###r#
#####X#######H#######Z###########G##H#j:##I##########################
################ #`#
###H#####
#####X###
####0################ h############# ###?#####O############
####X###X###X######################X###X###X#################
####X###X###X######################X###X###X#############
##############33##########################################
#9######1###P###########T##########(##### ##################
#####T#########l#####
#####T## ###C#######A###########################P###################
####
######################
#####T###
####6####A################################################# @###0
##5#####################Child###################################
#####T###
####6####B#################################################P##
###6#####################Parent###################################
#####T###
####6#####################################################` 0##
#
##5#####################Child###################################
#####T###
####6####@#################################################0
#####5#####################Child###################################
#####T###
####<###########################################################Z
#z###N#####################&
#(#1#0#s#)####$##########################################0####
#### T###
##c##########A######################
#t#h#r#e#a#d#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#1#F#E###G#a#n#d#a#l#f# # # # #
# # # # # # # # # # # # # # # # # # # #B#8#A#9#E#E#A#E#:##########
#######0####
####
T###
##c##########A######################
#t#h#r#e#a#d#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#1#F#E###G#a#n#d#a#l#f# # # # #
# # # # # # # # # # # # # # # # # # #
#B#8#A#9#E#E#A#E#:###################0####
#####T###
##c##########A######################
#t#h#r#e#a#d#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#1#F#E###G#a#n#d#a#l#f# # # # #
# # # # # # # # # # # # # # # # # # # #B#8#A#9#E#E#A#E#:##########@#
###
#######
####
T###
####N####$###########G#-##H###################################
######### ## ##H#####################10s of
threads#############################################
#####T###
####0################################################
##6#####################Tomcat###################################
#####T###
####0###############################################p#p###
2#####################DB##############################v###r#
#####T#######N#######Z###########G#H#G9##I#h#######################
####################### #0
###v###b#
#####T##@#####N#######Z###########G#0*##H#@##I#Pw#####################
######################
############
#####T###
####N####`###########G#An##H##t################################
##
#########
P#P###I#####################100s of
threads#############################################
#####T###
####H###############G# T##H#c#############################
########P##########################mod_jkmod_rewritemod_phpmod_perl###
###$#########Z########################6###########################################
#################p###b#
#####T########H#######Z###########G#0*##H##!
I#$#########################################(#0 ###p###b#
#####T########H#######Z###########G#0*##H#`I#########################
#################(#` ###p###b#
#####T##@#####H#######Z###########G#0*##H#<##I########################
#################(# ###H#####
#####T###
####0################ h############# ###?#####################
T##############T###T###T######################T###T###T######################T##
#######
####T##############T###T###T######################T###T###T#####################
#T###T###T#############
##############33###########################################
##########`###########`#####0######(##### ######################
#####`#########H#####
#####`###
####0################ h############# ###?########
##############33###########################################
##########`###########d############(##### ####A###}###X########
#####d#########l#####
#####d##
###C##################################p########################
#################r#####
#####d## ###S#################################### `# #
#######################
#################H#####
#####d###
####0################ h############# ###?########
##############33##########################################
##########p###########h############(##### ################[H1##
#####h#########l#####
#####h## ###C###################################P###################
####
#################r#####
#####h##
###S################################################################

#################H#####
#####h###
####0################ h############# ###?########
##############33########,##################################
#####################l#####d######(##### ##################
#####l#########l#####
#####l## ###C####### ###########################P###################
####
#################l#####
#####l## ###C#######-########################
###########################
#################X####
#####l###
####0####A###################################?#############P###########
#####l###
####<##########################################################
#`##& ##D#####################Web
Browser#(Mosaic)###################################
#####l###
####<####P######################################################P##V
##C#####################Web Server
(Apache)#################################
####
l###
####<####p###################################################### #p#
####
A#####################Request########################################^###B#
####
l###
####6#############D##############################################
######^###B#
####l##@
####6#############D###########################################0###0####
>####
#####l###
##c##########A########################f#e#a#t#h#e#r#.#j#p#g# # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # #0#0#0#1#6#2#0#0###G#a#n#d#a#l#f# # # # # # # # # # # # # # # # # # # # # # #
# #B#8#A#9#E#E#A#E#:#####"#################0
########
#####l###
####<####0######################################################0###
####B#####################Response#######
################################H#####
#####l###
####0################ h############# ###?###############
##############33##########################################
#####################p############(##### ######################
#####p#########l#####
#####p## ###C###################################P###################
####
#################l#####
#####p##
###C#######p####################################################
#################H#####
#####p###
####0################ h############# ###?########
##############33##########################################
#2######*##################:######(##### ################7#####
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C#############################################################
######################
########
####6####p#################################################P
0###
##5#####################Child###################################
########
####<####0###################################################
####6#####################Parent###################################
########
####6#####################################################
#
##5#####################Child###################################
########
####6##################################################### ##
##5#####################Child###################################
########
####B####p#####################################################
##t##:
##P#####################& #(#1#0#0#s#)####$###
######################################v###b#
#############N#######Z###########G#0*##H#I########################
#####################x
## ###v###b#
#############N#######Z###########G#0*##H#
I#################################################
###v###b#
#######@#####N#######Z###########G#0*##H###I######################
##########################P
###v###b#
#######@#####N#######Z###########G#7###H#-
##I#s########################################################
########
####B#######Z##p######################################################
#P##0#@###S################# ###Servers#######
###########
###################################H#####
########
####0################ h############# ###?
#####O###################################################################
#####################################################
##############33########z##################################
#*######"#############t#####2######(##### ##################
#####t#########l#####
#####t## ###C#######p!###########################P###################
####
#################l#####
#####t## ###C########!
#####################################################
######################
#####t###
####<#### #################################################
##0###5#####################Child###################################
#####t###
####0#######################################################
6#####################Parent###################################
#####t###
####<####0###################################################
`#p###5#####################Child###################################
#####t###
####<####0"##################################################
p###5#####################Child###################################
#####t###
####B####"#####################################################
#
P######P#####################& #(#1#0#0#s#)####$###
######################################v###b#
####

t########N#######Z###########G#0*##H#'I#############################
#################
######v###b#
####
t########N#######Z###########G#0*##H#pI#D############################
######################v###b#
#####t##@#####N#######Z###########G#0*##H##
##I################################################
###v###b#
####
t##@#####N#######Z###########G# ##H#v##I#l
###############################################
#######
#####t###
####<#####$###########################################################
####K#####################Only one Parent
########################################H#####
#####t###
####0################ h############# ###?
#####O#################t###t## t######################t###t##
t######################t###t###t######################t###t##
t############# ##############33######################
####################
################ ####x#####3######(##### ######################
#####x#########l#####
#####x## ###C#######0%###########################P###################
####
#################l#####
#####x## ###C#######%########################
###########################
#################X####
#####x###
####0####A###################################?#############P###########
#####x###
####<####%######################################################
#`##& ##D#####################Web
Browser#(Mosaic)###################################
#####x###
####H#####'#####################################L#############?
############P##V ##G#####################Web Server
(Apache)##############################j###B#
#####x###
####B#############D#####################L##################?
############### ######j###B#
#### x##@
####B#############D#####################L##################?
############0##
0####P####
####
x###
############A##################L########L##?
#######f#e#a#t#h#e#r#.#j#p#g# # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # #0#0#0#1#6#2#0#0###G#a#n#d#a#l#f# #
# # # # # # # # # # # # # # # # # # # # # #
#B#8#A#9#E#E#A#E#:#####"#################0
#####H#####
#####x###
####0################ h############# ###?########
##############33##########################################
#####################|############(##### ####7######M########
#####|#########l#####
#####|## ###C#######P)###########################P###################
####
#################l#####
#####|##
###C#######(####################################################
#################H#####
#####|###
####0################ h############# ###?########
##############33###########################################
##########p################0######(##### ######################
##############H#####
########
####0################ h############# ###?########
##############33###########################################
#################################(##### ######################
##############l#####
#######
###C#######0(###########################p########################
#################l#####
####### ###C#######`######################## `# #
#######################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### #####################
##############l#####
####### ###C#######p~###########################P###################
####
#################l#####
#######
###C#######~####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##################################(##### #######<######k#####
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C#######P####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
########## #######################(##### #####t|###1###0#####
##############l#####
####### ###C#######0###########################P###################
####
#################l#####
#######
###C###########################################################
#################H#####
########
####0################ h############# ###?########
##############33################################ #########
##########0#######################(##### ####1######W###B#####
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C############################################################
#################H#####
########
####0################ h############# ###?########
##############33################################
#########
##########P#######################(##### ####
###
######Z######
##############l#####
####### ###C#######p###########################P###################
####
#################l#####
#######
###C###########################################################
#################H#####
########
####0################ h############# ###?########
##############33###########################################
##########################0######(##### ####P###d###
#########
##############H#####
########
####0################ h############# ###?########
##############33###########################################
##########p#######################(##### #######7############
##############l#####
#######
###C##################################p########################
#################r#####
####### ###S##################################### `# #
#######################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ############|#########
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C###########################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ######################
##############l#####
####### ###C#######0############################P###################
####
#################l#####
#######
###C#######p#####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ####### ####p##1#####
##############l#####
####### ###C####################################P###################
####
#################l#####
#######
###C############################################################
#################H#####
########
####0################ h############# ###?########
##############33################################
#########
#################################(##### ####7####xw#########
##############l#####
####### ###C#######0############################P###################
####
#################l#####
#######
###C#######P#####################################################
#################H#####
########
####0################ h############# ###?########
##############33#########################################
#################################(##### ######################
##############l#####
####### ###C#######
###########################P#######################
#################l#####
#######
###C#############################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##################################(##### ######################
##############l#####
####### ###C#######P###########################P###################
####
#################l#####
#######
###C###########################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
########## #######################(##### #######
`###
##############l#####
####### ###C####### ###########################P###################
####
#################l#####
#######
###C###########################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##########@#######################(##### ####A######X########
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C############################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##########`#######################(##### #####d#z#l###
##############l#####
####### ###C#######P###########################P###################
####
#################l#####
#######
###C###########################################################
#################H#####
########
####0################ h############# ###?########
##############33###########################################
##########################0######(##### ####7######Q###,#####
##############H#####
########
####0################ h############# ###?########
##############33###########################################
#################################(##### #######X############
##############l#####
#######
###C#######p###########################p########################
#################l#####
####### ###C############################### `# #
#######################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
########## #######################(##### ########t#M##d###
##############l#####
####### ###C#######0Cr###########################P###################
####
#################l#####
#######
###C#######Br####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ###################
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C#######P####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ####*###0######X#####
##############l#####
####### ###C##################################P###################
####
#################l#####
#######
###C#######0####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ########d###
#########
##############l#####
####### ###C#######&###########################P###################
####
#################l#####
#######
###C#######P'####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#################################(##### ################
##############l#####
####### ###C########(###########################P###################
####
#################l#####
#######
###C#######p(####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##################################(##### ############l#08######
##############l#####
####### ###C#######0)###########################P###################
####
#################l#####
#######
###C#######)####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##################################(##### ##########0#l###
##############l#####
####### ###C#######+###########################P###################
####
#################l#####
#######
###C#######p+####################################################
#################H#####
########
####0################ h############# ###?########
##############33##########################################
##########0########################(##### ############### ##
###############l#####
######## ###C#######0,###########################P###################
####
#################l#####
########
###C#######,####################################################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
##########P########################(##### ######################
###############l#####
######## ###C#######-###########################P###################
####
#################l#####
########
###C########.####################################################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
##########p###########
############(##### #### ?#D##,#t######
#####
#########l#####
#####
## ###C#######P0###########################P#######################
#################l#####
#####
## ###C#######0/####################################################
#################H#####
#####
###
####0################ h############# ###?########
##############33##########################################
###########################.######(##### ###############
P####
###############l#####
######## ###C#######1###########################P###################
####
######################
########
###C#######p1####################################################
"#########################p#`#P#p####H#####
#########
####0################ h############# ###?########
##############33###########################################
###########################0######(##### ####7######$########
###############H#####
#########
####0################ h############# ###?########
##############33###########################################
##################################(##### ######################
###############l#####
########
###C#######0############################p########################
#################l#####
######## ###C################################ `# #
#######################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
##################################(##### ########L:##
###
#####
###############l#####
######## ###C###################################P###################
####
#################l#####
########
###C#######P#####################################################
#################H#####
#########
####0################ h############# ###?########
##############33##########################################
##################### ############(##### ####A######X########
##### #########l#####
##### ## ###C####################################P###################
####
#################l#####
##### ##
###C#######p#####################################################
#################H#####
##### ###
####0################ h############# ###?########
##############33##########################################
#####################$############(##### ####### #############
#####$#########l#####
#####$## ###C###################################P###################
####
#################l#####
#####$##
###C#######0#####################################################
#################H#####
#####$###
####0################ h############# ###?########
##############33########d##################################
########
#########################(##### #######
##$)##B#####
##############l#####
####### ###C#######P############################P###################
####
#################H#####
########
####0################ h############# ###?########
##############33##########################################
#####################(############(##### #####`;##############
#####(#########l#####
#####(## ###C###################################P###################
####
#################l#####
#####(##
###C#############################################################
#################H#####
#####(###
####0################ h############# ###?########
##############33##########################################
######################,############(##### ######################
#####,#########l#####
#####,## ###C###################################P###################
####
#################l#####
#####,##
###C#######P#####################################################
#################H#####
#####,###
####0################ h############# ###?########
##############33##########################################
######################0############(##### ##############
#####
#####0#########l#####
#####0## ###C###################################P###################
####
#################l#####
#####0##
###C############################################################
#################H#####
#####0###
####0################ h############# ###?########
##############33##########################################
########## ###########4############(##### #########<V####,####
#####4#########l#####
#####4## ###C##################################P###################
####
#################l#####
#####4##
###C#######@####################################################
#################H#####
#####4###
####0################ h############# ###?########
##############33##########################################
##########0###########8############(##### ######################
#####8#########l#####
#####8## ###C####### ###########################P###################
####
#################l#####
#####8## ###C#######
##########################BYnPU+#&XvO=Z`85((pfC/cG##pHXa"
%##DTI9yC##gP*?8E#|8I4vhwa4#o
%###B$/#fu[SjrN-
2/1#(WBHM6,J$###'N#7b1&j#;vgOUyq#L[}i|
eO'd
u7#q^T#m##=u~#3g0QJ#B6m sgEEE}}}yE9BpT[ssSN:s`
;D4N'6##K!%Hn#QM +
Gk#)#j+C.9Y'>#3jDHASb#g
/wq>#,
#
##
## EX##qHSbt#l#/*,AJC#"K?"D]z#.|/K1'
\##I`Q.###########################
#################H#####
#####8###
####0################ h############# ###?########
##############33##########################################
##########@###########<############(##### ######################
#####<#########l#####
#####<## ###C##################################P###################
####
#################l#####
#####<##
###C#######@####################################################
#################H#####
#####<###
####0################ h############# ###?########
##############33##########################################
##########P###########@############(##### #######7######Q#####
#####@#########l#####
#####@## ###C##################################P###################
####
#################l#####
#####@##
###C###########################################################
#################H#####
#####@###
####0################ h############# ###?########
##############33###########################################
#####################D#####0######(##### ######################
#####D#########H#####
#####D###
####0################ h############# ###?########
##############33###########################################
#|######t###`###########H#####
######(##### ######################
#####H#########l#####
#####H##
###C#######`###########################p########################
#################`#####
#####H## ######
################### `# ########################
#################H#####
#####H###
####0################ h############# ###?########
##############33##########################################
##########p###########L############(##### #######P##@O#######
#####L#########l#####
#####L## ###C##################################P###################
####
#################l#####
#####L##
###C#######`####################################################
#################H#####
#####L###
####0################ h############# ###?########
##############33##########################################
#####################P############(##### ######################
#####P#########l#####
#####P## ###C##################################P###################
####
#################l#####
#####P##
###C#######@####################################################
#################H#####
#####P###
####0################ h############# ###?########
##############33##########################################
#####################T############(##### ######################
#####T#########l#####
#####T## ###C##################################P###################
####
#################l#####
#####T##
###C############################################################
#################H#####
#####T###
####0################ h############# ###?########
##############33###########################################
#####################d#####0######(##### ####################
#####d#########H#####
#####d###
####0################ h############# ###?########
##############33###########################################
#####################h############(##### ################0#####
#####h#########l#####
#####h## ###C#######
###########################p########################
#################l#####
#####h## ###C############################### `# #
#######################
#################H#####
#####h###
####0################ h############# ###?########
##############33########j##########4########
#*######"#########################(##### ######################
##############R#####
####### ###3################################
########################(#####
####### ###C#######0#######################
@#####################
########################Note that these are only freely-available or open-
source benchmarking tools. There are a number of commercial tools available, but
those are outside the scope of this presentation.###H#####
########
####0##############h############### ###?########
##############33##################<########
#n######f###@#######################(##### ######################
###############R#####
######## ###3################################
########################l#####
######## ###C#######,#######################
@#####################
####
####################The main difference between the RPS and the Concurrent User
count is the way the website is used. Typical users will load a page containing
many graphics, and then they will appear idle as they interact with that page. The
server is only involved when there is network activity, when a page is being
loaded. The number of Concurrent Users is the total number of users visiting the
site over any time period, even if they are idly reading the text of the webpage
and not using network or server resources.###H#####
#########
####0##############h############### ###?########
##############33###########################
##########P###########l#####8######(##### ##############0#####
#####l#########R#####
#####l## ###3################################
#############################
#####l## ###C##############################
@#####################
####F#################2###Benchmarks are a valuable tool for testing
performance. All benchmarks strive to some degree to represent real-world
scenarios. The key is knowing how well your benchmarks represent your workload. The
accuracy of your benchmarks will directly affect your ability to improve your
system using those results.###H#####
#####l###
####0##############h############### ###?########
##############33############################
##########p###########p#####h######(##### #####d###
########
#####p#########R#####
#####p## ###3################################
#############################
#####p## ###C########[}#######################
@#####################
####v#################b###In decreasing order of importance, these are the most
important values of a production web server.###H#####
#####p###
####0##############h############### ###?########
##############33############################
#####################t#####`######(##### ######################
#####t#########R#####
#####t## ###3################################
#############################
#####t## ###C###############################
@#####################
####n#################Z###It MUST conform to the HTTP spec. It should be
flexible with input and strict with output.###H#####
#####t###
####0##############h############### ###?########
##############33###########################
#L######D##############x###########(##### ######################
#####x#########R#####
#####x## ###3################################
########################J#####
#####x## ###C#######@########################
@#####################
########################W#e# #d#o#n## t# #w#a#n#t# #o#u#r# #w#e#b#
#s#e#r#v#e#r#s# #w#a#k#i#n#g# #u#s# #u#p# #i#n# #t#h#e# #m#i#d#d#l#e# #o#f# #t#h#e#
#n#i#g#h#t# #o#r# #r#e#q#u#i#r#i#n#g# #c#o#n#s#t#a#n#t# #a#t#t#e#n#t#i#o#n#.# #W#e#
#w#a#n#t# #a# #w#e#b# #s#e#r#v#e#r# #t#h#a#t# #w#e# #s#e#t# #u#p# #o#n#c#e# #a#n#d#
#n#e#v#e#r# #t#o#u#c#h# #a#g#a#i#n#.# #W#e# #w#a#n#t# #t#h#i#s# #t#h#i#n#g# #t#o#
#b#e#h#a#v#e# #l#i#k#e# #a#n# #a#p#p#l#i#a#n#c#e#,# #n#e#v#e#r# #b#r#e#a#k#i#n#g#
#d#o#w#n#.####H#####
#####x###
####0##############h############### ###?########
##############33########O###################
#######################|###########(##### ########(##
###0#####
#####|#########R#####
#####|## ###3################################
#############################
#####|## ###C################################
@#####################
########################Many systems are deployed without significant
scalability testing. This is unfortunate, since these are the sites that fail when
uptime is most critical.###H#####
#####|###
####0##############h############### ###?########
##############33########y########## ########
#9######1#########################(##### ######################
##############R#####
####### ###3################################
########################7#####
####### ###C###############################
@#####################
########################Although Latency and Concurrency are different values
that we strive to achieve in a web server, they are actually very closely related.
Often, as a site struggles to serve more and more concurrent users, the speed at
which each page is served will increase. One critical point is the point when users
begin to hit stop on their browsers and reload the page. This can place even more
load on an already strained system, causing further service denial.###H#####
########
####0##############h############### ###?########
##############33########^###################
###################################(##### ######################
##############R#####
####### ###3################################
##############################
####### ###C###############################
@#####################
#####################F###StartServer - The number of child processes to create
at start-time.MinSpareServer - The minimum number of idle children to have at any
time.MaxSpareServer - The maximum number of idle children to have at any time.
MaxClients - The maximum number of concurrent client connections to allow at any
time.MaxRequestsPerChild - The maximum number of requests that each child is
allowed to serve before it must terminate and be replaced. Useful for starting with
a clean slate every once in awhile, and particular useful for buggy 3rd party
modules that leak precious system
resources.###Z#############:#################<#################<#######
#########M############################H#####
########
####0##############h############### ###?########
##############33########~##########%########
#>######6###@######################(##### ############\#0#####
##############R#####
####### ###3################################
########################<#####
####### ###C#######P#######################
@#####################
#####################f###MinSpareThreads - The minimum number of idle threads
to allow at any time across all children.MaxSpareThreads - The maximum number of
idle threads to allow at any time across all children.ThreadsPerChild - The number
of threads within each child.MaxClients - The maximum number of concurrent client
connections to allow at any time.MaxRequestsPerChild - The maximum number of
requests that each child is allowed to serve before it must terminate and be
replaced. Useful for starting with a clean slate every once in awhile, and
particular useful for buggy 3rd party modules that leak precious system
resources.###Z#############O#################P#################,#######
#########M############################H#####
########
####0##############h############### ###?########
##############33######## ##########&########
##########`################Y######(##### ################0#####
##############R#####
####### ###3################################
#############################
####### ###C##############################
@#####################
####g#####################KeepAlive - Enable or Disable KeepAlive suport.
MaxKeepAliveRequests - The maximum number of requests to allow across one
persistent TCP/IP connection.KeepAliveTimeout - The maximum amount of time to wait
between requests on one persistent TCP/IP connection.###H###

#############################################T#################\##########H#####
########
####0##############h############### ###?########
##############33##################+########
#######x##########################(##### ####### ######0#####
##############R#####
####### ###3################################
########################~#####
####### ###C###############################
@#####################
######################
################H#####
########
####0##############h############### ###?########
##############33########H##########,########
##################################(##### ################7#####
##############R#####
####### ###3################################
##############################
####### ###C#######0 #######################
@#####################
#####################:###If you serve a lot of static content (eg. html pages,
images, downloaded files, etc) then you should seriously consider running under an
OS that supports sendfile.Double-copy is what happens when a process reads data
from a file and sends it to a network device. The first copy happens when the
kernel reads the file into the userspace process memory area. The second copy
happens when the kernel copies the data back out of userspace into kernel space,
forms a full data packet, and then copies that to the network card. When sendfile
is involved, the process simply instructs the kernel to send a particular file out
to a network connection. The kernel is then able to skip one of the copy steps,
dramatically decreasing processing. In Apache 2.0 is can actually be much worse
than double-copy, since filters that manipulate data sometimes need a third or
subsequent copy.Zero-copy is the best-case scenario, since that is when the kernel
and the network card cooperate together to read and assemble data directly from a
disk straight to the network. The data can actually pass to a network socket
without ever having to be copied into main memory. Modern UNIX (and Windows)
operating systems support this, but it is important that the network driver also
have support for this, otherwise you fall back to simple sendfile()
support.###P###&#################q####### #########n#######
###########################
##########H#####
########
####0##############h############### ###?########
##############33##################-########
#C######;#########################(##### ######################
##############R#####
####### ###3################################
########################A#####
####### ###C##############################
@#####################
########################HostNameLookups are disabled by default since Apache
1.3. If you need to get equivalent functionality, the logresolve program that comes
with Apache will often suffice. It is suggested that the processing occur on a
different box than the web server, so as to not adversely affect server
performance.If possible, restrict Allow/Deny clauses to a small set of users and
directory locations and only use IP addresses.###$#############\#######
#########-##########H#####
########
####0##############h############### ###?########
##############33##################.########
###########################*######(##### #########33#####
##############R#####
####### ###3################################
#############################
####### ###C#######2#######################
@#####################
####8#################r###B#y# #d#e#f#a#u#l#t#,# #A#p#a#c#h#e# #w#i#l#l#
#c#h#e#c#k# #e#a#c#h# #p#a#t#h# #c#o#m#p#o#n#e#n#t# #o#f# #a# #U#R#L# #w#i#t#h#
#s#t#a#t#(#)# #t#o# #s#e#e# #i#f# #i#t# #i#s# #a# #s#y#m#l#i#n#k#.# #T#h#i#s#
#d#o#e#s#n## t# #h#a#p#p#e#n# #i#f# #F#o#l#l#o#w#S#y#m#L#i#n#k#s# #i#s#
#e#n#a#b#l#e#d#,# #s#i#n#c#e# #s#y#m#l#i#n#k#s# #a#r#e# #s#i#m#p#l#y#
#t#r#u#s#t#e#d#.# #H#o#w#e#v#e#r#,# #I#f# #t#h#e#
#S#y#m#L#i#n#k#s#I#f#O#w#n#e#r#s#M#a#t#c#h# #O#p#t#i#o#n# #i#s# #e#n#a#b#l#e#d#
#i#n# #a# #d#i#r#e#c#t#o#r#y#,# #t#h#e#n# #e#a#c#h# #s#t#a#t#(#)# #c#a#l#l#
#t#h#a#t# #r#e#s#u#l#t#s# #i#n# #a# #s#y#m#l#i#n#k# #w#i#l#l# #a#l#s#o# #h#a#v#e#
#l#s#t#a#t#(#)# #c#a#l#l#e#d# #o#n# #i#t#.###T#o# #r#e#d#u#c#e# #t#h#e#
#n#u#m#b#e#r# #o#f# #s#y#s#t#e#m# #c#a#l#l#s# #p#e#r# #r#e#q#u#e#s#t#,# #a#v#o#i#d#
#u#s#i#n#g# #s#y#m#l#i#n#k#s#,# #o#r# #t#r#y# #t#o# #i#s#o#l#a#t#e# #t#h#e#m# #t#o#
#a# #p#l#a#c#e# #t#h#a#t# #y#o#u# #t#r#u#s#t# #s#o# #t#h#a#t# #y#o#u# #d#o# #n#o#t#
#h#a#v#e# #t#o# #i#n#c#u#r# #t#h#e# #e#x#t#r#a# #s#t#a#t#(#)#+#l#s#t#a#t#(#)#
#p#e#n#a#l#t#y# #a#c#r#o#s#s# #t#h#e# #e#n#t#i#r#e# #D#o#c#u#m#e#n#t#R#o#o#t#
#h#i#e#r#a#r#c#h#y#.#######Y#####################################################
%#################J###################################P#################e##########
###################################H#####
########
####0##############h############### ###?########
##############33##################/########
#j######b###0######################(##### ####### ####&########
##############R#####
####### ###3################################
########################h#####
####### ###C##############################
@#####################
#########################I#f# #y#o#u# #d#o#n## t# #w#a#n#t# #a#n#y#
#.#h#t#a#c#c#e#s#s# #s#u#p#p#o#r#t#,# #u#s#e# ## A#l#l#o#w#O#v#e#r#r#i#d#e#
#N#o#n#e## #a#n#d# #y#o#u# #w#i#l#l# #g#e#t# #t#h#e# #b#e#s#t#
#p#e#r#f#o#r#m#a#n#c#e#.# #I#f# #t#h#a#t# #i#s# #n#o#t# #p#o#s#s#i#b#l#e#,# #t#r#y#
#t#o# #r#e#s#t#r#u#c#t# #.#h#t#a#c#c#e#s#s# #s#u#p#p#o#r#t# #t#o# #a#
#c#e#r#t#a#i#n# #p#a#r#t# #o#f# #y#o#u#r# #d#i#r#e#c#t#o#r#y#-
#s#p#a#c#e#.####P######################################M####### #################
#########3##########H#####
########
####0##############h############### ###?########
##############33##################0########
#`######X###P######################(##### ######################
##############R#####
####### ###3################################
########################^#####
####### ###C###############################
@#####################
########################DirectoryIndex is a very handy feature of Apache, but
if you want to squeeze a little more performance out of Apache then you might
considering disabling it and referring to all pages directly.An in-depth discussion
of the features and benefits of mod_negotiation is outside the scope of this
presentation, however if you wish to use this wonderful

Вам также может понравиться