Title: Design, Implementation and Evaluation of a Client Characterization Driven Web Server
1Design, Implementation and Evaluation of a Client
Characterization Driven Web Server
- Balachander Krishnamurthy ATT Research Labs
- Craig Wills WPI
- Yin Zhang ATT Research Labs
- Kashi Vishwanath Duke University
2Motivation
- Users with varying connectivity request a variety
of files - Web site wants no user to get disinterested
- Handle requests based on connectivity
3Outline of our solution
- Figure out connectivity use web server logs
- Classify clients(IPs) store in shared memory
- Cluster group of IPs KW00
- When a page is requested, the Web server
- Identifies client connectivity
- Takes action if required alternate content etc.
- 122.3.4.22 - - 12/Apr/2003014022 0400
GET /foo.html HTTP/1.0 200 147
4System Architecture
Server Log
Classifier
User Requests
Classification Table (Shared Memory)
Apache Processes
5What is a page access?
- User clicks container page page eg. /foo.html
- Subsequent requests embedded objects
eg. /img1.gif - At server how long before the user
- starts getting the first object ?E_first
- gets the entire page ? E_last
- Smoothed means for popular pages
- Classes (poor, rich, normal) KW02
- Poor E_first gt3 and E_last gt5
- Rich E_first lt1 and E_last lt2
6Modified Apache Server
- Modification to Apache 1.3.24
- three files, less than 200 lines
- http_main.c, http_protocol.c, http_core.c
- One time overhead
- Open cluster library
- Read in configuration file
- /foo.html .gz .p_lc .r_mc
- Initialize shared memory
7Modified Apache Server Per Request Changes
- Per Request Changes
- Is it a popular page ( URI ) ?
- Lookup class (in shared memory data)
- Cluster lookup if IP unavailable
- Tailored action if appropriate and log it
8Testing How to choose test pages
- Proxy logs from a large manufacturing company
(Dec 2001) - Over 100,000 users
- Select 1000 most popular pages
- Download these April 2002
- 641 successful pages reconstructed
- 33 and 66 percentile value for characteristics
- Container bytes, of Embedded object, embedded
bytes - 3 x 3 x 3 27 buckets of pages
9TestingDistribution for test pages
Percentage of pages in each bucket
10 Server Overhead Latency increase at
client
- Generate IPs (X-IP header)
11Stress Test
- Plot of average increase in processing time for
the modified server
12Placing Clients and Modified Servers
- Prototype Apache Server with our test site
- Linux att.com in NJ, USA
- Linux wpi.com MA, USA
- FreeBSD icir.org CA,USA
- Clients
- attATT Labs-Research, NJ,USA
- de Saarbruecken University, Germany
- cable cable modem user, NJ,USA
- modem 56Kbps dialup modem user, NJ,USA
- ukLondon, U.K via a dedicated 56Kbps line.
13 ClientsObserved network
characteristics
uk-icir
Spans a wide spectrum
uk-att
cable-icir
de-att
att-icir
att-wpi
uk-wpi
14Experiments Httperf Clients
- Request similar mix of pages as described earlier
- 200 random requests each
- New Headers X-Server-Actions, X-Class
- Baseline measure
- parallel-1.0 up to 4 parallel HTTP/1.0 requests
- Server actions
- Manner of delivery
- Compress, serial-1.1, pipeline-1.1, bundle
- Amount served
- Base-only, half-object,half-resolution
15 Classifier Stability and Correctness
Rich
Moderate
Poor
Overall consistent with
expectation 90
16Results Low throughput client
17Results medium throughput
18ResultsSummary
19Conclusions
- What all do we do ?
- Online client classification
- Deliver modified server actions
- Measure latency reduction to different clients
- Compare various actions
- First to do this in a unified framework.
20 Conclusions Server and Classifier
- Overhead at server
- Average75 usec. Negligible for end-user
- Turn off classification during overload
- Server poor-content during overload
- Classification
- Close to expectation
- Stable over the duration of experiment
- Improve by using select pages and better
thresholds
21Future
- Other server actions
- Delta encoding
- Policies regarding cacheablility of objects
- Create a test for clustering
22Acknowledgement
- Client testing
- Saarbruecken, Germany
- ICIR, USA
- Proxy logs - Manufacturing company
23Thanks!
Slides http//www.cs.duke.edu/kvv/www.ppt
24Related Work
- Mark network packets NT02
- Improve performance of all clients
- Adapt content based on server load AB99
- Users expectation BBK00
- Alternate admission control and server scheduling
policies CMC01, CR02 - Dynamically altering multimedia content MB01
- Explicit client notification e.g. SPAND SSK97