1 Class-based prioritized resource control in Linux Amit Khanna Roll No 4134, BE - I
Mar 26, 2015
1
Class-based prioritized resource control in Linux
Amit Khanna
Roll No 4134, BE - I
2
Outline
Motivation Framework Classification Engine (CE) Resource Schedulers Resource Monitoring User Interface Conclusion and Future Work
3
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
4
Workload Management
Current scenario Manual Static
Workload Managers (WLM) Differentiated service Translate business goals to system goals Ability to handle dynamically changing
resource requirements
5
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
6
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
7
Components of CKRM
UserKernel
Resource Management Middleware
System Administrator
Classification Filesystem
RCFS (Resource Control Filesystem)
CKRM API
Externally defined Policy--Rules -- Class defs
Classification EngineCKRM Core
fork()exec()…
Share Usage(per- resource)
Class AT1
T2
T4
Share Usage(per- resource)
Class DT4
Reclassification
Class Aware Patches
Resource SchedulersCPU, Disk I/O, Network,
Memory
Class Aware Resource Allocation
Ti - Tasks- Patches
Resource request
8
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
9
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
10
Test Results
Class shares
•Gold – 60%
•Silver – 30%
•Bronze – 9%
•Best Effort – 1%
Nice Values : -20, -10, 0, 10, 19
11
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
12
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
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
Class A’s share/Class B’s
share
13
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
14
Resource Monitoring (continued)
Sampling Self-restarting kernel timer Struct delay_info Schedulers records timestamps Kernel module sends data to state-agent as
records
15
Resource Control File System (RCFS)
/rcfs
/rcfs/task_class/rcfs/
socket_class /rcfs/ce
Files
member
config
target
shares
stats
Files
reclassify
state
Rules
Gold Music
Compile
16
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
17
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
18
19
Scheduling Overhead
Test results have been measured using LMBench benchmark
20
Figure 10: Monitoring and Control Approach
21
for (i=0; i<50; i++)
{ start = get_time();
busy_waiting(N);
end = get_time();
response = end - start - N;
sleep(200) ;
}
Interactivity Test Code
22
Interactivity Test Results
Gold, Bronze and Best Effort classes have 5 CPU bound jobs.
Silver class has an interactive job
23
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
24
I/O Controller
CKRM I/O Scheduler
Block Layer (Producer)
Low Level Device Driver (Consumer)
Output Queue
FCFS
Dequeue Function
Sort/ Merge
Enqueue Function
Per-class queues