Application Performance in the QLinux Multimedia Operating System Sundaram, A. Chandra, P. Goyal, P. Shenoy, J. Sahni and H. Vin Umass Amherst, U of Texas.

Slides:



Advertisements
Similar presentations
CPU Scheduling.
Advertisements

Application Performance in the QLinux Multimedia Operating System Jun Wang Jun Wang.
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
PlanetLab Operating System support* *a work in progress.
 Basic Concepts  Scheduling Criteria  Scheduling Algorithms.
IT Systems Multiprocessor System EN230-1 Justin Champion C208 –
Chapter 5 CPU Scheduling. CPU Scheduling Topics: Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
CPU Scheduling CS 3100 CPU Scheduling1. Objectives To introduce CPU scheduling, which is the basis for multiprogrammed operating systems To describe various.
XENMON: QOS MONITORING AND PERFORMANCE PROFILING TOOL Diwaker Gupta, Rob Gardner, Ludmila Cherkasova 1.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
Operating Systems 1 K. Salah Module 2.1: CPU Scheduling Scheduling Types Scheduling Criteria Scheduling Algorithms Performance Evaluation.
Computer Science Deadline Fair Scheduling: Bridging the Theory and Practice of Proportionate-Fair Scheduling in Multiprocessor Servers Abhishek Chandra.
Chapter 6: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 2, 2005 Chapter 6: CPU Scheduling Basic.
1 Thursday, June 15, 2006 Confucius says: He who play in root, eventually kill tree.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
5: CPU-Scheduling1 Jerry Breecher OPERATING SYSTEMS SCHEDULING.
Chapter 5: CPU Scheduling
Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes.
Job scheduling Queue discipline.
Operating Systems Operating System Support for Multimedia.
Bandwidth Allocation in a Self-Managing Multimedia File Server Vijay Sundaram and Prashant Shenoy Department of Computer Science University of Massachusetts.
Computer Science Surplus Fair Scheduling: A Proportional-Share Scheduling Algorithm for Symmetric Multiprocessors Abhishek Chandra Micah Adler Pawan Goyal.
Slide 6-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 6 Threads and Scheduling 6.
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
1Chapter 05, Fall 2008 CPU Scheduling The CPU scheduler (sometimes called the dispatcher or short-term scheduler): Selects a process from the ready queue.
Computer Science 1 Resource Overbooking and Application Profiling in Shared Hosting Platforms Bhuvan Urgaonkar Prashant Shenoy Timothy Roscoe † UMASS Amherst.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Lecture 5 Operating Systems.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Chapter 5: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 2, 2005 Scheduler What is the job of.
OPERATING SYSTEMS CPU SCHEDULING.  Introduction to CPU scheduling Introduction to CPU scheduling  Dispatcher Dispatcher  Terms used in CPU scheduling.
More Scheduling cs550 Operating Systems David Monismith.
Operating Systems Lecture 2 Processes and Threads Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
A Measurement Based Memory Performance Evaluation of High Throughput Servers Garba Isa Yau Department of Computer Engineering King Fahd University of Petroleum.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 5: CPU Scheduling.
Computer Science 1 Resource Overbooking and Application Profiling in Shared Hosting Platforms Bhuvan Urgaonkar Prashant Shenoy Timothy Roscoe † UMASS Amherst.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Chapter 5 Processor Scheduling Introduction Processor (CPU) scheduling is the sharing of the processor(s) among the processes in the ready queue.
Chapter 5: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria.
Cello A Disk Scheduling Framework for Next Generation Operating Systems – Prashant J. Shenoy and Harrick M. Vin Presented by Evan Clark September 8, 2003.
Chapter 5: Process Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Basic Concepts Maximum CPU utilization can be obtained.
VTurbo: Accelerating Virtual Machine I/O Processing Using Designated Turbo-Sliced Core Embedded Lab. Kim Sewoog Cong Xu, Sahan Gamage, Hui Lu, Ramana Kompella,
Operating Systems 1 K. Salah Module 2.2: CPU Scheduling Scheduling Types Scheduling Criteria Scheduling Algorithms Performance Evaluation.
1 11/29/2015 Chapter 6: CPU Scheduling l Basic Concepts l Scheduling Criteria l Scheduling Algorithms l Multiple-Processor Scheduling l Real-Time Scheduling.
Cpr E 308 Spring 2005 Process Scheduling Basic Question: Which process goes next? Personal Computers –Few processes, interactive, low response time Batch.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
6.1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
NUS.SOC.CS5248 Ooi Wei Tsang 1 Course Matters. NUS.SOC.CS5248 Ooi Wei Tsang 2 Make-Up Lecture This Saturday, 23 October TR7, 1-3pm Topic: “CPU scheduling”
1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Chapter 4 CPU Scheduling. 2 Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
Basic Concepts Maximum CPU utilization obtained with multiprogramming
Lecturer 5: Process Scheduling Process Scheduling  Criteria & Objectives Types of Scheduling  Long term  Medium term  Short term CPU Scheduling Algorithms.
Scheduling.
CPU Scheduling Scheduling processes (or kernel-level threads) onto the cpu is one of the most important OS functions. The cpu is an expensive resource.
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
EEE Embedded Systems Design Process in Operating Systems 서강대학교 전자공학과
Copyright ©: Nahrstedt, Angrave, Abdelzaher
Chapter 2 Scheduling.
Module 5: CPU Scheduling
3: CPU Scheduling Basic Concepts Scheduling Criteria
Chapter 5: CPU Scheduling
CPU SCHEDULING.
Outline Scheduling algorithms Multi-processor scheduling
CPU scheduling decisions may take place when a process:
Shortest-Job-First (SJR) Scheduling
Module 5: CPU Scheduling
Xing Pu21 Ling Liu1 Yiduo Mei31 Sankaran Sivathanu1 Younggyun Koh1
Module 5: CPU Scheduling
Presentation transcript:

Application Performance in the QLinux Multimedia Operating System Sundaram, A. Chandra, P. Goyal, P. Shenoy, J. Sahni and H. Vin Umass Amherst, U of Texas Austin ACM Multimedia, 2000

Introduction General purpose operating systems handline diverse set of tasks –Conventional best-effort with low response time +Ex: word processor –Throughput intensive applications +Ex: compilation –Soft real-time applications +Ex: streaming media Many studies show can do one at a time, but when do two or more grossly inadequate –MPEG-2 when compiling has a lot of jitter

Introduction Reason? Lack of service differentiation –Provide ‘best-effort’ to all Special-purpose operating systems are similarly inadequate for other mixes Need OS that: –Multiplexes resources in a predictable manner –Service differentiation to meet individual application requirements

Solution: QLinux Solution: QLinux (the Q is for Quality) –Enhance standard Linux –Hierarchical schedulers +classes of applications or individual applications –CPU, Network, Disk

Outline QLinux philosophy CPU Scheduler –Evaluation Packet Scheduler –Evaluation Disk Scheduler –Evaluation Lazy Receiver Processing –Evaluation Conclusion

QLinux Design Principles Support for Multiple Service Classes –Interactive, Throughput-Intensive, Soft Real-time –Low average response times, high aggregate throughput, performance guarantees Predictable Resource Allocation –Priority not enough (starvation of others) –Ex: mpeg_decoder at highest can starve kernel –QLinux uses rate-based rather than priority based +Weight based on rate for each: w i /  j w j –Not static partitioning since unused can be used by others

QLinux Design Principles Service Differentiation –Within a class, applications treated differently –Uses hierarchical schedulers –Top level gives resources to class –In each class, can allocate resources appropriately among all applications Support for Legacy Applications –Support binaries of all existing applications (no special system calls required) –No worse performance (but may be better)

QLinux Design Principles Proper Accounting of Resource Usage –Application level CPU easy –Kernel resources hard +Load from interrupts difficult to charge to process +Many kernel tasks are system-wide –Lazy receiver processing +Defer packet processing when receiver asks –CPU scheduler allocation holds even when kernel uses up various amounts of CPU

QLinux Components

Hierarchical Start-time Fair Queuing (H-SFQ) CPU Scheduler Uses a tree Each thread belongs to 1 leaf Each leaf is an application class Weights are of parent class Each node has own scheduler Uses Start-Time Fair Queuing at top for time for each (Typical OS?)

H-SFQ CPU Scheduler Nodes can be created on the fly Threads can move from node to node Defaults to top-level fair scheduler if not specified Utilities to do external from application  Allow support of legacy apps without modifying source

Experimental Setup (for all) Cluster of PCs –P2-350 MHz –64 MB RAM –RedHat 6.1 –QLinux based on Linux Network –100 Mb/s 3-Com Ethernet –3Com Superstack II switch (100 Mb/s) “Assume” machines and net lightly loaded

Experimental Workloads Inf: executes infinite loop –Compute-intensive, Best effort Mpeg_play: Berkeley MPEG-1 decoder –Compute-intensive, Soft real-time Apache Web Server and Client –I/O intensive, Best effort Streaming media server –I/O intensive, Soft real-time Net_Inf: send UDP as fast as possible –I/O instensive, Best effort Dhrystone: measure CPU performance –Compute-instensive, Best effort Lmbench: measure I/O, cache, memory … perf

CPU Scheduler Evaluation-1 Two classes, run Inf for each Assign weights to each (ex: 1:1, 1:2, 1:4) Count the number of loops

CPU Scheduler Evaluation-1 Results “count” is proportional to CPU bandwidth allocated

CPU Scheduler Evaluation-2 Two classes, equal weights (1:1) Run two Inf Suspend one at t=250 seconds Restart at t=330 seconds Note count

CPU Scheduler Evaluation-2 Results (Counts twice as fast when other suspended)

CPU Scheduler Evaluation-3 Two classes: soft real-time & best effort (1:1) Run: –MPEG_PLAY in real-time (1.49 Mbps) –Dhrystone in best effort Increase Dhrystone’s from 1 to 2 to 3 … –Note MPEG bandwidth Re-run experiment with Vanilla Linux

CPU Scheduler Evaluation-3 Results

CPU Scheduler Evaluation-4 Explore another best-effort case Run two Web servers (representing, say 2 different domains) Have clients generate many requests See if CPU bandwidth allocation is proportional

CPU Scheduler Evaluation-4 Results

CPU Scheduler Overhead Evaluation Scheduler takes some overhead since recursively called Run Inf at increasing depth in scheduler hierarchy tree Record count for 300 seconds

CPU Scheduler Overhead Evaluation Results

QLinux Components

H-SFQ Packet Scheduler Typical OS uses FIFO scheduler for outgoing packets Use H-SFQ (Fair Queue) to schedule Each leaf is one or more queues of packets Weights for queues Unused bandwidth to others

H-SFQ Packet Scheduler Operations on the fly Associate with queue via setsockopt()

Packet Scheduler Evaluation-1 Two classes using Net_inf Run two receivers to count received packets 8KB packets

Packet Scheduler Evaluation-1 Results (Different packets sizes?)

Packet Scheduler Evaluation-2 Results

Packet Scheduler Evaluation-3 Real-world applicatis Streaming media server in soft real-time class Increasing number of Net_inf apps Compare QLinux with Vanilla Linux

Packet Scheduler Evaluation-3 Results (Me … note, degradation not linear)

Packet Scheduler Overhead Evaluation Results

Combined Packet and Scheduler Evaluation Web server and several I/O intensive apps Two classes in CPU and Packet scheduler –Web server in one –All I/O intensive Net_inf in other Web server driven by trace (ClarkNet) Increase number of Net_inf Compare to Vanilla Linux

Packet/CPU Evaluation Results Qlinux degrades at 8 … ideas why?

QLinux Components

Cello Disk Scheduler Typical OS uses SCAN for disk Cello 2 levels: class independ, class specific 3 classes Class specific decides when and how many to move Class ind puts where Lastly moved FCFS (Badri’s thesis)

Cello Disk Scheduler Evaluation (None in this paper) (Previous paper at SIGMetrics)

QLinux Components

Lazy Receiver Processing (LRP) Process A running Packet arrives for process B –Interrupt, IP, TCP, Enqueue gets charged to A! LRP postpones until process does a read Tricky! Some steps, e.g. TCP ack, requires it to happen right away –Special thread for each process for packets QLinux uses special queues, decodes only as far as needed –Special queue for ICMP, ARP …

LRP Evaluation and Results Run 2 Apache Web Servers –Lightly loaded, retrieve 2KB file in 51ms Bombard 1 server with DoS by sending 300 requests/sec –Other server load went to 70ms Re-run with Vanilla Linux –Other server load went to 80ms

QLinux Total System Evaluation Run lmbench –System call overhead –Context switch times –Network I/O –File I/O –Memory perofrmance QLinux vs. Vanilla Linux

QLinux Total System Evaluation Results Not much overall. Context switch overhead, but 100 ms time slice QLinux untuned, so could be better

Conclusion Qlinux provides –CPU scheduler –Packet scheduler –Disk scheduler –Proper I/O processing Provide fair and predictable allocation Multimedia and Web applications can benefit Overhead is low All conventional operating systems should incorporate

Future Work?

Future Work Disk scheduler results Multiprocessors Fair allocation of other I/O interrupts Other devices since Cello disk specific –RAID, tape,