240 likes | 366 Views
Class-based prioritized resource control in Linux. Amit Khanna Roll No 4134, BE - I. Outline. Motivation Framework Classification Engine (CE) Resource Schedulers Resource Monitoring User Interface Conclusion and Future Work. Introduction. Workload
E N D
Class-based prioritized resource control in Linux Amit Khanna Roll No 4134, BE - I
Outline • Motivation • Framework • Classification Engine (CE) • Resource Schedulers • Resource Monitoring • User Interface • Conclusion and Future Work
Introduction • Workload • Any system work with a distinct business goal • A set of kernel tasks executing over some duration • Vary in their importance • Resource demands • Diverse • Dynamically changing
Workload Management • Current scenario • Manual • Static • Workload Managers (WLM) • Differentiated service • Translate business goals to system goals • Ability to handle dynamically changing resource requirements
Class-based Kernel Resource Management (CKRM) • Class - A dynamic grouping of OS objects • Entitlements • Reclassification of a task • Hierarchical • Classification Rule - Method by which a task can be classified into a class • Policy - A collection of class definitions and classification rules
Components of CKRM • Core • Defines the basic entities • Link between all the other components • Classification Engine (CE) • Classifies kernel objects into classes • Class-aware Resource Controllers • RCFS (Resource Control File System) • User-Kernel interface for CKRM
User System Administrator Resource Management Middleware CKRM API Kernel Classification Filesystem RCFS (Resource Control Filesystem) Ti - Tasks - Patches Share Usage (per- resource) Class D Externally defined Policy --Rules -- Class defs Share Usage (per- resource) Class A T4 fork() exec() … Classification Engine Reclassification CKRM Core Resource request Class Aware Resource Allocation Class Aware Patches Resource Schedulers CPU, Disk I/O, Network, Memory T2 T1 T4 Components of CKRM
Classification Engine (CE) • Optional component (module) • Automatically triggered on kernel events • Eg. setuid, fork, exec • RBCE (Rule Based Classification Engine) • Rule format • A set of attribute-value tuples (A, V) and a class C • Eg gid=10, uid = 7, target = /rcfs/task_class/Gold
CPU Controller • Current scheduler - O(1) scheduler • One runqueue per CPU • Active array and expired array • 140 nice levels • Extensions • Runqueues for each class for each CPU • Hierarchical scheduling scheme • ecp(C) = R * Σ cycles(C)/share(C) + top_prio
Test Results • Class shares • Gold – 60% • Silver – 30% • Bronze – 9% • Best Effort – 1% Nice Values : -20, -10, 0, 10, 19
Memory Controller • Current Scenario • Memory zones • Page descriptor lists – active, inactive and free • Page reclamation • Extensions • Classes have associated share of physical memory • No of pages allocated to a class are monitored • Class shares are enforced only when system memory is low • Modified page reclamation
Memory Usage Test Results Test conducted on a 2.4GHz Pentium 4 desktop running Redhat Linux 9 and the 2.5.69 Linux kernel running using a simple microbenchmark Class A’s share/Class B’s share Total physical memory = 352 MB Class A’s access freq = 2 * Class B’s access freq Class A’s consumption = Class B’s consumption = 200 MB
Resource Monitoring • State-agent • Runs in user-space • Maintains state of existing and exited processes • Monitoring infrastructure design principles • Event-driven • Aperiodic • Periodic • Communication channel • Minimal kernel state
Resource Monitoring (continued) • Sampling • Self-restarting kernel timer • Struct delay_info • Schedulers records timestamps • Kernel module sends data to state-agent as records
Resource Control File System (RCFS) /rcfs /rcfs/task_class /rcfs/socket_class Files /rcfs/ce member config target shares stats Files reclassify state Rules Gold Compile Music
Conclusions and Future Work • Goal-oriented WLMs can automate low-level administration • Critical workloads can be protected from workload pressure by specifying their minimum shares • Redeveloping resource controllers to support hierarchy of classes • Cooperative communication between various resource controllers
References • CKRM Open Source Project. Class-based kernel resource management. http://ckrm.sf.net/ • Enabling Autonomic Workload Management in Linux, IEEE Proceedings, International Conference on Autonomic Computing (ICAC'04), 17-18 May 2004, Pages: 314 – 315 • AIX 5L Workload Manager, IBM Corp. http://www.redbooks.ibm.com/redbooks/pdfs/sg245977.pdf
Scheduling Overhead Test results have been measured using LMBench benchmark
Interactivity Test Code for (i=0; i<50; i++) { start = get_time(); busy_waiting(N); end = get_time(); response = end - start - N; sleep(200) ; }
Interactivity Test Results Gold, Bronze and Best Effort classes have 5 CPU bound jobs. Silver class has an interactive job
I/O Controller • Current scenario • Each block device has a single logical queue • Merges and sorts I/O requests made by block layer • Passes on the request to device driver • Extensions • One queue per-class • Moves the requests from input queue to dispatch queue in proportion of their weight
Block Layer (Producer) Sort/ Merge Enqueue Function Per-class queues Dequeue Function Output Queue FCFS Low Level Device Driver (Consumer) I/O Controller CKRM I/O Scheduler