How to Do Website Performance Analysis and Tuning with Flood and Apache 2.0
Justin Erenkrantz University of California, Irvine Aaron Bannert Covalent Technologies
1 The 4th O’Reilly Open Source Convention
How to Do Website Performance Analysis and Tuning with Flood and - - PowerPoint PPT Presentation
How to Do Website Performance Analysis and Tuning with Flood and Apache 2.0 Justin Erenkrantz University of California, Irvine Aaron Bannert Covalent Technologies 1 The 4th OReilly Open Source Convention No, not this type of flood
1 The 4th O’Reilly Open Source Convention
2 The 4th O’Reilly Open Source Convention
Updated slides at: http://www.clove.org/flood-presentation/
ahttp://www.apache.org/LICENSE.txt
3 The 4th O’Reilly Open Source Convention
4 The 4th O’Reilly Open Source Convention
5 The 4th O’Reilly Open Source Convention
6 The 4th O’Reilly Open Source Convention
7 The 4th O’Reilly Open Source Convention
8 The 4th O’Reilly Open Source Convention
9 The 4th O’Reilly Open Source Convention
a
ahttp://news.cnet.com/investor/news/newsitem/0-9900-1028-7130948-0.html
10 The 4th O’Reilly Open Source Convention
HTTP Servers (Apache 2.0) App Servers (Tomcat 4.0) Database (PostgreSQL 7)
11 The 4th O’Reilly Open Source Convention
12 The 4th O’Reilly Open Source Convention
13 The 4th O’Reilly Open Source Convention
14 The 4th O’Reilly Open Source Convention
HTTP Servers (Apache 2.0) App Servers (Tomcat 4.0) Database (PostgreSQL 7)
15 The 4th O’Reilly Open Source Convention
HTTP Servers (Apache 2.0) App Servers (Tomcat 4.0) Database (PostgreSQL 7) Nameserver
16 The 4th O’Reilly Open Source Convention
HTTP Servers (Apache 2.0) App Servers (Tomcat 4.0) Database (PostgreSQL 7) Nameserver File Server
17 The 4th O’Reilly Open Source Convention
Directory Services HTTP Servers (Apache 2.0) App Servers (Tomcat 4.0) Database (PostgreSQL 7) Nameserver File Server
18 The 4th O’Reilly Open Source Convention
19 The 4th O’Reilly Open Source Convention
20 The 4th O’Reilly Open Source Convention
21 The 4th O’Reilly Open Source Convention
22 The 4th O’Reilly Open Source Convention
23 The 4th O’Reilly Open Source Convention
24 The 4th O’Reilly Open Source Convention
25 The 4th O’Reilly Open Source Convention
Directory Services HTTP Servers (Apache 2.0) App Servers (Tomcat 4.0) Database (PostgreSQL 7) Nameserver File Server
26 The 4th O’Reilly Open Source Convention
27 The 4th O’Reilly Open Source Convention
28 The 4th O’Reilly Open Source Convention
29 The 4th O’Reilly Open Source Convention
30 The 4th O’Reilly Open Source Convention
31 The 4th O’Reilly Open Source Convention
32 The 4th O’Reilly Open Source Convention
33 The 4th O’Reilly Open Source Convention
34 The 4th O’Reilly Open Source Convention
35 The 4th O’Reilly Open Source Convention
36 The 4th O’Reilly Open Source Convention
37 The 4th O’Reilly Open Source Convention
38 The 4th O’Reilly Open Source Convention
aso we can write fancy frontends later
39 The 4th O’Reilly Open Source Convention
ain order to eliminate hardware constraints
40 The 4th O’Reilly Open Source Convention
41 The 4th O’Reilly Open Source Convention
aApache Portable Runtime (http://apr.apache.org/) bThanks to William Rowe
42 The 4th O’Reilly Open Source Convention
43 The 4th O’Reilly Open Source Convention
44 The 4th O’Reilly Open Source Convention
45 The 4th O’Reilly Open Source Convention
aSide-effect: Allows us to think outside of concepts like sequences and threads and
remote processes.
46 The 4th O’Reilly Open Source Convention
47 The 4th O’Reilly Open Source Convention
48 The 4th O’Reilly Open Source Convention
49 The 4th O’Reilly Open Source Convention
afine-grain control is not implemented, we only have simple looping at the moment
50 The 4th O’Reilly Open Source Convention
aThe collective class hasn’t been implemented, so this syntax is preliminary.
51 The 4th O’Reilly Open Source Convention
aThe megaconglomerate class hasn’t been implemented, so this syntax is prelimi-
nary.
52 The 4th O’Reilly Open Source Convention
53 The 4th O’Reilly Open Source Convention
54 The 4th O’Reilly Open Source Convention
55 The 4th O’Reilly Open Source Convention
56 The 4th O’Reilly Open Source Convention
57 The 4th O’Reilly Open Source Convention
Fetch Page Fetch Image Fetch Image
keepalive connection
58 The 4th O’Reilly Open Source Convention
Fetch Page Fetch Image Fetch Image
keepalive connection
Sample XML Configuration
<urllist> <name>First</name> <description>Use Case 1</description> <url>http://localhost:8080/site/</url> <url>http://localhost:8080/site/httpd logo wide.gif</url> <url>http://localhost:8080/icons/apache pb.png</url> </urllist> 59 The 4th O’Reilly Open Source Convention
Fetch Page Fetch Image Fetch Image
keepalive connection
Fetch Image Fetch Image
keepalive connection 10-20sec later
Fetch Page 60 The 4th O’Reilly Open Source Convention
Fetch Page Fetch Image Fetch Image
keepalive connection
Fetch Image Fetch Image
keepalive connection 10-20sec later
Fetch Page
Sample XML Configuration <urllist> <name>Second</name> <description>Use Case 2</description> <url>http://localhost:8080/site/</url> <url>http://localhost:8080/site/httpd logo wide.gif</url> <url>http://localhost:8080/icons/apache pb.png</url> <url predelay="30">http://localhost:8080/site/test2.html</url> <url>http://localhost:8080/site/oscon2002 lg ad.gif</url> <url>http://localhost:8080/site/hotel pool.jpg</url> </urllist>
61 The 4th O’Reilly Open Source Convention
Fetch Page Fetch Image Fetch Image
keepalive connection
Fetch Large File
25-35sec later
62 The 4th O’Reilly Open Source Convention
Fetch Page Fetch Image Fetch Image
keepalive connection
Fetch Large File
25-35sec later
Sample XML Configuration <urllist> <name>Third</name> <description>Use Case 3</description> <url>http://localhost:8080/site/</url> <url>http://localhost:8080/site/httpd logo wide.gif</url> <url>http://localhost:8080/icons/apache pb.png</url> <url predelay="15">http://localhost:8080/site/flood.pdf</url> </urllist>
63 The 4th O’Reilly Open Source Convention
Sample XML Configuration <profile> <name>SiteProfile</name> <description>Round Robin Configuration</description> <useurllist>Second</useurllist> <profiletype>round robin</profiletype> <socket>keepalive</socket> <report>relative times</report> <verify resp>verify 200</verify resp> </profile>
64 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<farmer> <name>John</name> <time>300</time> <useprofile>SiteProfile</useprofile> </farmer> 65 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<farm> <name>Bingo</name> <usefarmer count="10">John</usefarmer> </farm> 66 The 4th O’Reilly Open Source Convention
67 The 4th O’Reilly Open Source Convention
68 The 4th O’Reilly Open Source Convention
69 The 4th O’Reilly Open Source Convention
70 The 4th O’Reilly Open Source Convention
71 The 4th O’Reilly Open Source Convention
72 The 4th O’Reilly Open Source Convention
73 The 4th O’Reilly Open Source Convention
74 The 4th O’Reilly Open Source Convention
75 The 4th O’Reilly Open Source Convention
76 The 4th O’Reilly Open Source Convention
77 The 4th O’Reilly Open Source Convention
78 The 4th O’Reilly Open Source Convention
79 The 4th O’Reilly Open Source Convention
80 The 4th O’Reilly Open Source Convention
81 The 4th O’Reilly Open Source Convention
82 The 4th O’Reilly Open Source Convention
83 The 4th O’Reilly Open Source Convention
84 The 4th O’Reilly Open Source Convention
85 The 4th O’Reilly Open Source Convention
86 The 4th O’Reilly Open Source Convention
87 The 4th O’Reilly Open Source Convention
aFreeBSD and Darwin currently have no good way to trace system calls on a per-process
basis except for at the kernel level with kdump and ktrace. This makes performance analysis quite challenging on these platforms.
88 The 4th O’Reilly Open Source Convention
89 The 4th O’Reilly Open Source Convention
90 The 4th O’Reilly Open Source Convention
91 The 4th O’Reilly Open Source Convention
ahttp://www.ethereal.com/
92 The 4th O’Reilly Open Source Convention
aSee: xplot
93 The 4th O’Reilly Open Source Convention
94 The 4th O’Reilly Open Source Convention
95 The 4th O’Reilly Open Source Convention
96 The 4th O’Reilly Open Source Convention
97 The 4th O’Reilly Open Source Convention
98 The 4th O’Reilly Open Source Convention
99 The 4th O’Reilly Open Source Convention
ahttp://www.tcptrace.org/
100 The 4th O’Reilly Open Source Convention
“No matter how many webservers we add we can’t seem to handle any more SSL traffic.”
“As soon as we hit 100 concurrent users, out database fails.”
101 The 4th O’Reilly Open Source Convention
102 The 4th O’Reilly Open Source Convention
103 The 4th O’Reilly Open Source Convention
104 The 4th O’Reilly Open Source Convention
105 The 4th O’Reilly Open Source Convention
106 The 4th O’Reilly Open Source Convention
107 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<url>http://httpd.apache.org/test/flood/</url> 108 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<urllist> <name>SSL Hosts</name> <description>A bunch of SSL hosts we want to hit</description> <url>https://www.modssl.org/example/test.phtml</url> <url>https://mozilla-crypto.ssleay.org/cryptocheck.php</url> </urllist> 109 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<farmer> <name>Joe</name> <count>5</count> <useprofile>RoundRobinProfile</useprofile> </farmer> 110 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<farm> <name>Bingo</name> <usefarmer count="25">Joe</usefarmer> </farm> 111 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<collective> <name>Borg</name> <usefarm count=4>Bingo</usefarm> <usefarm count=2>Pepperidge</usefarm> </collective>
aThe collective class hasn’t been implemented, so this syntax is preliminary.
112 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<remotehost> <name>dualcpu</host> <host>dual.example.com</host> <username>tester</username> <proto>ssh</proto> </remotehost> <megaconglomerate> <name>TestLab</name> <usecollective host="dualcpu">Borg</usecollective> <usecollective host="quadcpu">Bubba</usecollective> </megaconglomerate>
aThe megaconglomerate class hasn’t been implemented, so this syntax is preliminary.
113 The 4th O’Reilly Open Source Convention
Sample XML Configuration
<profile> <name>RoundRobinProfile</name> <description>Round Robin Configuration</description> <useurllist>Test Hosts</useurllist> <profiletype>round robin</profiletype> <socket>keepalive</socket> <verify resp>verify 200</verify resp> <report>easy</report> </profile> 114 The 4th O’Reilly Open Source Convention
115 The 4th O’Reilly Open Source Convention
116 The 4th O’Reilly Open Source Convention
117 The 4th O’Reilly Open Source Convention
118 The 4th O’Reilly Open Source Convention
119 The 4th O’Reilly Open Source Convention
120 The 4th O’Reilly Open Source Convention
http://httpd.apache.org/
121 The 4th O’Reilly Open Source Convention
122 The 4th O’Reilly Open Source Convention
123 The 4th O’Reilly Open Source Convention
124 The 4th O’Reilly Open Source Convention