Web Transaction Analysis and Optimization (TAO) Pankaj K. Garg, Ming Hao, Cipriano Santos, Hsiu-Khuern Tang, Alex Zhang Software Technology Laboratory HP Laboratories Palo Alto HPL-2002-45 March 4 th , 2002* E-mail: garg@hpl.hp.com software performance monitoring, Web performance tuning, application response monitoring, software performance modeling Web user interactions start at a client (a browser on an access device) and flow through several software components connected via digital networks. While the business world is fascinated with the range of possibilities for such E-transactions, the underlying technology opens up several new challenges for managing the performance, availability, and reliability of the enabling software components. Several studies have shown that poor response times for Web user interactions can significantly impact the business values--slow Web transactions can have strong implications on brand-name, customer acquisition and loyalty, and purchasing behavior of customers. In the TAO project, we are developing metrics, models, and infrastructure to effectively manage the performance of Web applications. We use WebMon, a novel instrumentation tool to obtain transaction -level data from web interactions, from end-user and system component perspectives. Our analysis techniques help determine important segments of users and their web interactions. The analysis is embedded in visualization and optimization modules, enabling efficient reporting for system and business administrators, and automated resource scheduling and planning. In this paper we present an overview of the TAO project, and highlight some of its novel aspects, e.g., use of pixel-bar charts, web request classification, and integrated demand and capacity planning. * Internal Accession Date Only Copyright Hewlett-Packard Company 2002 Approved for External Publication !" # $%&"% '() *+ ,- ,"", ! " #$% & ' ( % ! # ) ) Æ " #$% & * ! !" #$% & ' ( )) * ) )* ) ) ' ' ! )" + ) * ) ( * ) ,(- #$% ( & ) ) + ) ./ #0% * ./ ' ) ) 1 * ) ) ) ) ( 12 !1" 3 Æ 4)( 5 & 2 ) ) + 0 & ) 6 (2 * !)( ((" $ ) & - ) ) ( 7 - ( & ) & & ( 4)( * ) ' ) 1 3 1 ) #8% ) ) ) ) ) ) ) & 3 9 - ) ( ) - Æ ! :;" Æ ) 1 ) ( ( 2 ) ) < - ( Æ= * ) 9 & ) 2 2 * & 9 ( ( , ) ( )) ) 1 9 ) 1 0 6 ( ( 1 $ 1 ( > )) 1 ) ' : ) * 9 * ? * ) 5 9 * @ ) & ) - < ( ) & ) ) ( ) ) * < + & ) 0 LB Internet File System LB Load Balancer Browsers Access Devices Web Services Database LB Web Server Farm Application Server Farm + ,- # ! 1) ( ) 2 ( ) ( #8% < ) 5 !" /A !0" ( B0AA !B) 0 A A " #6% & 5 ( ( 3 * ' B0AA /A < 0 B0AA #6% & 9 B0AA B !B) ) " & B) ) & B C ) & & B) D !BD" ) ! " A & ( ( B C ) ( * & ) ! " # $!"#% 3 AB@ ( ) ( ' AB@ ( )* ) ) B.@E ! " AB@ - & AB@ 3 < ( B0AA ) ) 5 !" ) 3* ! " !0" ! " B@1 ! " ) !6" & ) ! " ( #8% ) 5 A 0 ) 9 6 EJB EJB DB JSP/Servlet Engine EJB EJB DB + .- # /. 6 ) 9 $ B.@E 5 B) . E )( !B.@E" ) ' - )( ( 2 (2 5 E9 & 0 2 B0AA < 2 ( & 5 !" 9 !0" ' 9 ) 7F < - 7F ( GH 7F ( GH 7F ) 7F ( ' ( ) & < - ) ) * & $ ) ( & 9 #:% < ( * #% < - ) * 8 ) 0 ) ( ( ( ( - ( ) @( ( ) ( * * ( ) ) -( ) ' ( 9 9 ( ) 9 ) ) ( )( ( ! !""# " ) 2 ( (( & ) ) ( 9 ( 9 ) * 9 & 9 ) ) 2 4) * ) < - Æ 4 ( Æ ( Æ ) * 4 ( Æ < & ) ) & 2 & 9 ) & ) * ) 2 * ) & ) * 1 #% 2 * = ( 9 ( 2 ( & ) 2 ) )( & 2 - 2 ( 2 ) & 2 & ) * ) &( 2 > 1 4 ) ( < - & (( & & B0AA ) ) 9 & & 4 ( ) 2 ) 2 ( * ! " & & 2 * * ( & ( 4 ) ( & ' ( ) ( ( ) ) ) & & 2 < - ( ( & ) & . & ) ) ( - ( ) ( 4 -( 2 ( ' ) & ( * G H GH G) H G H= ( '' ) GH &= ( ''' ) G) H & = ( ( < 6 & ( ( ( ( !" 0 & 2 ) ( ) ( 2 ) )( ( ( & 2 ' - )) & ) 9 ) - ( * GE( . #$%H ( 2 ! " 4 ! " ( & ) ) ) ( , : 0 200 400 600 search view product add to cart login 800 1000 round−robin random size−based least work main page round−robin random size−based least work 0 200 400 600 800 1000 0 200 400 service times (ms) + 0- # ! ? 600 800 1000 ) ( ) ( , 7( . E !7.E" 7.E B0AA* ) ) ) ( 5 ( * * ( +- ) F) ! F" ) * * ( ( ( ( ( ( 4 ( ) I 7.E 7 ( ) 7.E * ) ) ) 7.E ) 9 & & & 9 7.E ) )( Æ 9 4 ( ( 4 7.E ' 2 * - ) 7.E ( 7.E 9- < - B0AA (( (5 !" !0" B C ) AB@ !6" . < ( 9- ( ) ) ) ( ) ( ) ( ) * - ) & ( ( ) 9 ( F ) 2 & ) ) ) ( 2 ) & ) F ' $ - !& " J) ) & ( F 8 * - ) 9 ) ) ( ( ) 7.E ( ( ( ( ) & 7.E 9 ( ) 2 ) - ) ( ) ) ' $0 - !" # ' & - ) ) ) ( 2 ) & ) 9 F & 9 ( & ) !" ) * ! " !0" - ( & ! " * !" ! " K ! " ) ! ( " & ( ( ) 0 ' GH & * 9 ( - ( < - & ) &( & .@ )= & ) &( & ( ( ) & ) ! & & )" 1 ) ( ( , ( 9 & ( ' ( & * 6 ) & * & + ! ) ) .@ ) - (" < ) & ! E7 *" ) & ) & ) - 5 # % K # % L #% L # % " ! " ! " ! ) & ) & ( & ) = # % ) ) ) ) ) & ( = ) ) .@ ) ) & ) ) -( *= ) ) ' ( & & .@ )= ( - ) * - ( ! " ) ) #% K # % ) 2 !E7" ) # % K / & ) - $ % ' E( . 2 & )) #% > !" ) !" ( G - 0 >; H 2 ! 0" K > ( ! 0" *) &( ) ) 5 ! " K #% , #% ! " 1 ( A#%C ( ! " ( ( & ! " ! " ( #% ( ) ) 9 ( & #' ( ! !" # $ & )* ' - ( ( 7.E ) 2 ( & * ) - F ) ( ( 7.E ) & ) ( ( & 9 * ( 2 ( ( M #%" < - ( < $5 Mesh Switch BEI=4 BRO = 4 E1 R1 BRI=4 BRO = 4 BEI=4 E2 BRO = 4 Edge Switches R2 BRI=4 BRO = 4 Rack Switches R3 BRI=4 BRO = 4 R4 BRI=4 BRO = 4 S1 a1 = 400 a2 = 8 a3 = 4 BSI = 2 BSO = 2 S2 a1 = 400 a2 = 8 a3 = 4 BSI = 2 BSO = 2 S3 a1 = 400 a2 = 8 a3 = 4 BSI = 2 BSO = 2 S4 a1 = 400 a2 = 8 S5 a3 = 4 a1 = 500 BSI = 2 BSO = 0.56 a2 = 10 a3 = 16 BSI = 2 BSO = 2 S6 S7 a1 = 500 a2 = 10 a3 = 16 BSI = 2 BSO = 0.4 a1 = 400 a2 = 8 a3 = 4 BSI = 2 BSO = 2 S9 S8 a1 = 500 a2 = 10 a3 = 16 BSI = 2 BSO = 0.5 a1 = 500 a2 = 10 a3 = 16 BSI = 2 BSO = 0.5 S10 a1 = 400 a2 = 8 a3 = 4 BSI = 2 BSO = 2 S11 a1 = 500 a2 = 10 a3 = 16 BSI = 2 BSO = 2 S12 a1 = 500 a2 = 10 a3 = 16 BSI = 2 BSO = 2 + 1- 2 * ( ( ( = 0 * $ ) 0 ) 6 ( E7 ( 2 ( A ) * ( < > 6 ) & 5 K C- ) & K 0 K 0 )( - Æ ) ) ) l2 l1 T(0,1) = 0.2 T(2,3) = 0.5 l3 T(3,2) = 0.15 Database T(1,0) = 0.2 T(2, 1) = 0.2 Web Servers App Servers a1 L = 500, U = INF a2 L = 10, U = INFO a3 L = 10, U = INF a1 L = 400, U = 600 a2 L = 8, U = 16 a3 L = 4, U = 16 a1 L = 200, U = 500 a2 L= 4, U = 10 a3 L = 4, U = 12 + 3- # $ 1 ( ) ( ( ( ( ( ) 2 ( C- ) & 9 5 ( ( 0 E 0 6 $ ) ) ( & ( ( ) & > Æ ( 4 ) Æ ) ( ) : / Æ ) ) ( ) 3 1 2 - - ( ( 0 9 - ' 9 6 - - - ( ) ) ( ) ) 2 ) #>% . ) (( ) ) < ) ) Æ * D & ) ' ( ) ( ) ( ( ( ) ) ( 9 ) ! " ' ) &*( Æ )2 , & & ) 5 ) 6 0 7 ( ) 6 ' (2 4 $ ) & ) & 9 G H #% - )( 2 G H & #? ?% ' ( 7F 6. ' ) ) ) &I * ) ( ) ( ) & D #% )( (2 + ) !' , - # - @ 2 -( ) 2 - - @ E ) )( )2 4) ( ( ( + 4- 5 + 6- 2* 5 < ? - 608$: ) ' < : ( ) / $ ' < ? - ) ) ( !0$ " A - -- !) " !"= (- ! " ) ! * (" 4 4 ) - < < ? )5 ( 0 $ ! " - ! " ) ! " ) ) ) @( * 9 - ( - $ < - 8 ' >8>$8: 7F ' $ ( < ? ( 1 ( )( )( !- " - ) $ ! " # + 7- 2* ) + 8- 2* 5 ) ' < 8 - ) 2 ) 0$ A - -- !"= (- > 2 4 4 2 ) < < 8 2 5 ) 2 - ( ( ) 4 2 ( !? : " ) 2 ( !I> ? 0$ " < !< ?" 2 -- !"= (- 4 4 2 ) 2 - < < 2 ) ) 4 2 ( !( ( 4 ) " + ) - * & ! (2 ( - D2 & ! " - ' ) 7F * 5 K ' K ! " < 9 K K K & !" ( - 9 ( !" K : + ,9- $ ! "" " K ! " K ! !!"! ! "" < 6. ) ' 6> 8: * D 0 ! " G H ( ( ) !" )) ( A( * 5 !" ( ) #6 : >% !0" E .)( /* ! * " ) ( ( E )( * )( ( ! " ? ) ( ) ( * & 9 ) ( 1 3 ( (( 7F ( ( & ! ) " ) ( & 9 B0AA * 7F G 7FH AÆ * 1 ) B0AA* ) )( ( )) < - ' ! " ) B0AA ) ( ) ( 1 * ( ( < ( 1 Æ ( ( 1 3 #0% ,) 1 3 ( & & ( 2 ) ) ( & GE( . H 7.E # ' ) )) ( 1 2 3 !1" 1 ) ) * ) )( ( ( * * 2 ) - ) ' ( ) Æ ( ' & ) ) Æ ( "$ * ( F 1 D @ 7 , 3 8 % & #% D . N < < (2 @) @ ' & '(!)*+' " 668I66 0 #0% O ( <* F < J J2 O O * . 2 B @ * 1 5 F @ E 7( '@ #6% . . M E & . E@ /* ) ' & ,--- .'!/0 ) + . E 7 B 0 #$% @ F E F , * <((* / + + 6?!8"5?:I80 $ #>% F E*) O ) E . * & . ( . ' & !!! 1 !+ # ' B E 7 B 0 #:% . . O *3 ,( ) ) '@ .) P* , /P >8 #?% , J E B < D2 ' ' !!!2345 2 ? #8% J O A J O ,F0:0 ,* F E 0 #% , 7 .( , B) D ' ' !!!2344 #% E , B F 7 .( , O D AE @) 7 - @ E ' + 6772,--8 0 #% ,@ A E) E . 1 E * ( . ) ( " & 7 + >!0"50$I008 #0% E F( ( $ @ +( " + * 0 0 ) #6% , ! " # 1 ( Q E 7 0 #$% B < ) ' . E ' & ''(** ,--- + # + F & '( B( 0 #>% E R M , E 12 F . E ' #:% J 7F E9 ' #?% E @ , J ,@F1@5 , D E 7 ' ' !!!23',--- 0 #8% . E A @ 5 E ' ) ' & ! ' ' & $' '&89% @ 4 E 1 0 #% R M 1 ' . E ,F0> , F E 7 0 0