210 likes | 362 Views
Providing Differentiated Levels of Service in Web Content Hosting J ussara Almeida, Mihaela Dabu, Anand Manikutty and Pei Cao First Workshop on Internet Server Performance, 1998. 9/25/2001 Network Computing Lab. EECS. KAIST Kang, Seungwoo. Contents. Introduction Methodology
E N D
Providing Differentiated Levels of Service in Web Content HostingJussara Almeida, Mihaela Dabu, Anand Manikutty and Pei CaoFirst Workshop on Internet Server Performance, 1998 9/25/2001 Network Computing Lab. EECS. KAIST Kang, Seungwoo
Contents • Introduction • Methodology • Design & Implementation • Experiment & Results • Limitations of the study • Conclusions
Introduction • Increased Web content hosting • Many servers charge fees for the Web service • Customers expect quality of service proportional to the fee • Apache • Most used Web server • FCFS(first-com first-served) • doesn’t support for differentiated quality of service • Objective • To provide differentiated levels of service by priority-based request scheduling • Focus on server QoS, not network QoS • Single-machine server system
Methodology (1/2) • Priority-based approaches • Two levels (high, low) of quality • priority based on requested documents • Approaches • User-level • Add a scheduler process to Apache • Kernel-level • Both Apache and Linux kernel by adding new system calls • Mapping from request priorities into process priorities • Keeping track of which processes are running at each priority level
Methodology (2/2) • Performance metric • Response time • The average latency time taken by the server • After accepting a connection, until closing the connection
Design & Implementation (1/5) • Scheduling policies • Preemptive at kernel-level, non-preemptive at user-level • Sleep policy : Upon receiving a request • Wakeup policy : In place of a completed request • Implementation • Maximum thresholds : A fixed number of slots for each priority level • Queue for blocked requests request or or High-priority Queue Low-priority
Design & Implementation (2/5) • Conserving policies • Non-work conserving • Allow requests to occupy only slots of the same type • Work conserving • Not allow a slot to go empty • Allows requests to occupy slots of a different type request High-priority 3 requests or or 4 requests Queue Low-priority
Design & Implementation (3/5) • User-level approach • A master process spawn a child process for each request and a Scheduler process • The child process determines its priority from URL • Maps the customer name into a priority value Master process Scheduler sleep or wakeup policy requests spawn request scheduling spawn Child process #1 Child process #2 Child process #3
Design & Implementation (4/5) • Kernel-level approach • Parameters • The number of priority levels • The number of concurrent processes at each level • The priority value • The priority value assigned to a blocked process • SLEEPING_PRIORITY • New system calls • initialize_priority_scheme • my_set_priority • my_release_priority
Design & Implementation (5/5) • Roles of kernel • Maps request priority to a process priority • Scheduling (sleep & wake-up policy) • Wake-up • Decides the priority level of the processes to be unblocked • Choose the oldest process Process call Wakeup policy Sleep policy kernel
Experimental Setup (1/2) • HTTP server : Apache 1.3b2, KeepAlive off • For user-level approach • Sun SparcStation • Two 66MHz CPUs, 64 MB RAM, Solaris 2.4, 100 Mbps Ethernet • Client : WebStone • 6 machines, 5 client processes per machine
Experimental Setup (2/2) • For kernel-level approach • DEC 90MHz Pentium • 32 MB RAM, Linux 2.1.54, 10 Mbps Ethernet • Client : WebStone • 2 independent WebStone benchmarks on the same machine • 15 client processes for one specific type • 2 different workloads
Results (1/6)- User-level approach (1/3) • Non-work conserving
Results (2/6)- User-level approach (2/3) • Non-work conserving
Results (3/6)- User-level approach (3/3) • Work conserving
Results (4/6)- Kernel-level approach (1/3) Average latency for requests of type A & B for both workload with no policy The configurations used in the experiments
Results (5/6)- Kernel-level approach (2/3) Average latency for workload WA
Results (6/6)- Kernel-level approach (3/3) Average latency for workload WB Average latency for workload WB using non-work conserving and SLEEPING_PRIORITY = -1
Limitations of the Study • For truly differentiated QoS • CPU scheduling • Replacement policy for buffer cache • Disk I/O scheduling to favor high-priority • Networking QoS • But, focused on only CPU scheduling in this study • Webstone cannot drive the Web server to overload • Need to test under bursty loads with various mix of high-priority and low-priority requests
Conclusions • Implement the priority-based scheduling • Restricting the number of concurrent processes is a simple and effective strategy • Work conserving policy is not adequate when the thresholds are large • Non-work conserving is better for multiple levels of priority
Critique • Is the way to determine priority reasonable? • Too small benefit for high-priority, too much loss for low-priority • Is modifying kernel good approach? • If requests of the same type are explosive?