Resource Containers: A new facility for resource management in server systems

Similar documents
Why Threads Are A Bad Idea (for most purposes)

Web Server Architectures

Chapter 2: OS Overview

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6

<Insert Picture Here> An Experimental Model to Analyze OpenMP Applications for System Utilization

Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications

Real-Time Scheduling 1 / 39

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Analysis of Delivery of Web Contents for Kernel-mode and User-mode Web Servers

Virtualization is set to become a key requirement


SIDN Server Measurements

Comparing the Performance of Web Server Architectures

Multi-core Programming System Overview

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Design of an Application Programming Interface for IP Network Monitoring

Processes and Non-Preemptive Scheduling. Otto J. Anshus

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Performance Evaluation of Shared Hosting Security Methods

Oracle9i Release 2 Database Architecture on Windows. An Oracle Technical White Paper April 2003

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Instrumentation for Linux Event Log Analysis

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Oracle and Sybase, Concepts and Contrasts

HyperThreading Support in VMware ESX Server 2.1

Operating Systems 4 th Class

Memory Resource Management in VMware ESX Server

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Web Server Software Architectures

Windows8 Internals, Sixth Edition, Part 1

Broadband Networks. Prof. Karandikar. Department of Electrical Engineering. Indian Institute of Technology, Bombay. Lecture - 26

CS161: Operating Systems

theguard! ApplicationManager System Windows Data Collector

OS Concepts and structure

This tutorial will take you through step by step approach while learning Operating System concepts.

1 Organization of Operating Systems

Mellanox Cloud and Database Acceleration Solution over Windows Server 2012 SMB Direct

An Implementation Of Multiprocessor Linux

Virtualization for Cloud Computing

Operating System: Scheduling

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Comparison of Request Admission Based Performance Isolation Approaches in Multi-tenant SaaS Applications

Linux Process Scheduling Policy

1. Computer System Structure and Components

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

CPU Scheduling Outline

Performance Isolation of a Misbehaving Virtual Machine with Xen, VMware and Solaris Containers

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

First-class User Level Threads

Multi-core and Linux* Kernel

OpenMosix Presented by Dr. Moshe Bar and MAASK [01]

Chapter 2: Computer-System Structures. Computer System Operation Storage Structure Storage Hierarchy Hardware Protection General System Architecture

Principles and characteristics of distributed systems and environments

Operating System Organization. Purpose of an OS

Revisiting Software Zero-Copy for Web-caching Applications with Twin Memory Allocation

Cloud Operating Systems for Servers

Scalability of Linux Event-Dispatch Mechanisms

Operating System Tutorial

Chapter 5 Process Scheduling

Resource Utilization of Middleware Components in Embedded Systems

MASTER THESIS. TITLE: Analysis and evaluation of high performance web servers

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Predictable response times in event-driven real-time systems

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

An introduction to Apache Traffic Server. Leif Hedstrom December 2011

Survey Flash Slides. CS 256/456 Fall 2013 Department of Computer Science University of Rochester 12/12/2013 CSC 2/456 1

TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance

x64 Servers: Do you want 64 or 32 bit apps with that server?

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

Internet Information TE Services 5.0. Training Division, NIC New Delhi

IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking.

Writing a C-based Client/Server

High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs.

Eloquence Training What s new in Eloquence B.08.00

3 - Introduction to Operating Systems

Using Story Points to Estimate Software Development Projects in the Commercial Phase

Android Fundamentals 1

Operating System Components and Services

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

S y s t e m A r c h i t e c t u r e

Operating System Impact on SMT Architecture

Virtualization. Jukka K. Nurminen

A Hybrid Web Server Architecture for e-commerce Applications

CIS 551 / TCOM 401 Computer and Network Security

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Transcription:

CS 5204 Operating Systems Resource Containers: A new facility for resource management in server systems G. Banga, P. Druschel, Rice Univ. J. C. Mogul, Compaq OSDI 1999

Outline Background Previous Approaches & Problems Motivation The Novel Idea: Resource Containers Performance & Evaluation Conclusion Current Status of R.C. 2

HTTP Servers Background 3 Many users perceived computing performance is based on the capacity of the remote servers. The underlying OS & hardware are hard to provide specific concerns on web browsing. Servers can accomplish different tasks each consuming different types of resources. However, depending on the resource allocation mechanisms of the systems it is hard to achieve QoS, fairness, etc. for clients.

Terms Background 4 Resource Principal: entities for which separate resource allocation and accounting are done. So resource principals are the units at whose granularity resource scheduling is done. Protection Domain: entities that need to be isolated from each other.

Traditional Process Abstraction (a dual function) 5 coincide in the process abstraction. Do NOT allow process to directly control resource consumption of its kernel part. Process is what constitutes an independent activity. Background Protection domain and Resource principal

Previous Approaches 6 Process-per Connection A master process listens on port for new connection requests For each new connection a new process is forked Drawbacks: Forking overhead Suffers from context switch IPC

Previous Approaches 7 Single-Process Event-Driven Server Single process runs handlers in main loop for each ready connection Avoid IPC & context switches Drawbacks: Not really concurrent But can fork multiprocesses if on multiprocessor system

Previous Approaches 8 Multi-threaded Server Each connection gets its own thread Threads are scheduled by thread scheduler Idle threads listen for next connection Avoids context switches and scales better

Previous Approaches Other resources Dynamic Resources: Such as pages created in response to user input This usually results in another process being created to handle the dynamic request Kernel Resources: Kernel does network processing Buffers, sockets, etc. Separate from server app and charged to either one or any unlucky process! 9

General Assumptions of Servers Problems 10

Problems A network-intensive app. The resources consumed by the kernel are unaccounted. i.e. The process is the right unit for protection, but it does not encompass all the resource consumption being done for the application 11

Problems A multi-process app. An application composed of multiple user space processes, which are cooperating to perform a single activity. So the unit of resource management is set of all the processes rather than individual process 12

Problems 13 A single-process multi-threaded server The process is using multiple independent threads, one for each connection. The correct unit of resource management is smaller than a process, It is the set of all resources used to accomplish a single independent activity

Integrating network processing with resource management Lazy Receiver Processing Problems Maintains equivalence between resource principal & process However, still associates protection domain and resource (i.e. an equivalence in between) 14

A good story to tell Motivation Dual function protection domain and resource principal coincidence is not a good idea: System does not allow app to directly control resource consumption, e.g. via priority App has no control over resource management that is performed by kernel on behalf of app Web servers should be able to provide some kind of guarantee to clients, accurately accounting for the resources consumed 15

Resource Containers!!! The Novel Idea An abstract OS entity that logically contains all system resources being used by an app to achieve a particular independent activity Resources: CPU, mem, socket, buffer Attributes: Scheduling Para, resource limits, network QoS values 16

Resource Containers 17

Resource Containers Resources Processes / Threads Resource binding is the relation between resource / processing domains and the associated resource principals, effectively decoupling the two Charge resources within kernel like LRP Dynamic resource binding: based on the activity or purpose they are serving 18

Resource Containers 19 Scheduling Threads may serve one container or many, existing within the same protection domain To avoid rescheduling threads after every resource container binding, a list of containers is associated with a thread and the thread is scheduled based on combined attributes Threads initially inherit their parents container

Resource Containers Implementation Modifications to Digital UNIX 4.0D Changes to the CPU scheduler to treat resource containers as the resource principals. A resource container can obtain a fixed share over a time scale of several seconds, or it can choose to time-share the resources assigned to its parent container with its sibling containers. (scheduling algorithm used?) TCP/IP subsystem modified to implement LRP Server software: single-process, event-driven Clients used the S-Client software 20

Performance & Eval Isolation of separate activities Can static requests maintain throughput under pressure of many dynamic requests? Constrain the resource usage of dynamic requests 21

Performance & Eval Priority based scheduling Assign resource container T-high to high priority connections How does T-high response time change with increase in low priority connections 22

Performance & Eval Protecting against SYN flooding They had a set of known mis-behaving clients SYN flooding attach to the server Measured the concurrent throughput to other clients 23

Conclusion Resource containers decouple resource principals from protection domains and allow explicit and finegrained control over resource consumption at both user-level and kernel-level in the system Combined with accurate resource accounting can help web servers provide differentiated QoS 24

Current Status Since R.C. was the work done 12 yrs ago, there are so many subsequent implementation work Resource Containers in K42 (2003) User-based rather than process-based API rcid = create(# of CPU, max # pages) bind(rcid) 25

Current Status Since R.C. was the work done 12 yrs ago, there are so many subsequent implementation work FreeBSD Foundation announces Resource Containers Project (2010) Goal: create a single, unified framework for controlling resource utilization API to use that framework to implement per-jail resource limits 26

Thank you! Any Questions? 27