Load distribution in distributed systems

Slides:



Advertisements
Similar presentations
Ch. 12 Routing in Switched Networks
Advertisements

Dr. Kalpakis CMSC 621, Advanced Operating Systems. Distributed Scheduling.
Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical.
Scheduling in Web Server Clusters CS 260 LECTURE 3 From: IBM Technical Report.
Ch. 12 Routing in Switched Networks Routing in Packet Switched Networks Routing Algorithm Requirements –Correctness –Simplicity –Robustness--the.
Ch 11 Distributed Scheduling –Resource management component of a system which moves jobs around the processors to balance load and maximize overall performance.
Resource Management §A resource can be a logical, such as a shared file, or physical, such as a CPU (a node of the distributed system). One of the functions.
Consistency and Replication Chapter 7 Part II Replica Management & Consistency Protocols.
1 Uniprocessor Scheduling Types of scheduling –The aim of processor scheduling is to assign processes to be executed by the processor so as to optimize.
Module 10: Virtual Memory Background Demand Paging Performance of Demand Paging Page Replacement Page-Replacement Algorithms Allocation of Frames Thrashing.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed Scheduling.
1 Scheduling and Migration Lê Công Nguyên Trần Phúc Nguyên Phan Tiên Khôi.
Distributed Process Management
Chap 5 Process Scheduling. Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a.
1 Routing and Scheduling in Web Server Clusters. 2 Reference The State of the Art in Locally Distributed Web-server Systems Valeria Cardellini, Emiliano.
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CS-334: Computer.
Scheduling in Batch Systems
Distributed Process Management
Research Paper Example Exploiting Process Lifetime Distributions for Dynamic Load Balancing Mor Harchol-Balter Allen Downey SIGMETRICS 2006.
Fair Scheduling in Web Servers CS 213 Lecture 17 L.N. Bhuyan.
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
Computer Science Lecture 7, page 1 CS677: Distributed OS Multiprocessor Scheduling Will consider only shared memory multiprocessor Salient features: –One.
Distributed Operating Systems CS551 Colorado State University at Lockheed-Martin Lecture 6 -- Spring 2001.
Computer Organization and Architecture
1 When to Switch Processes 3 triggers –System call, Interrupt and Trap System call –when a user program invokes a system call. e.g., a system call that.
Strategies for Implementing Dynamic Load Sharing.
Informationsteknologi Tuesday, October 9, 2007Computer Systems/Operating Systems - Class 141 Today’s class Scheduling.
03/29/2004CSCI 315 Operating Systems Design1 Page Replacement Algorithms (Virtual Memory)
1 Distributed Systems: Distributed Process Management – Process Migration.
Distributed Process Management1 Learning Objectives Distributed Scheduling Algorithms Coordinator Elections Orphan Processes.
CS364 CH08 Operating System Support TECH Computer Science Operating System Overview Scheduling Memory Management Pentium II and PowerPC Memory Management.
Dynamic Load Sharing and Balancing Sig Freund. Outline Introduction Distributed vs. Traditional scheduling Process Interaction models Distributed Systems.
Algorithms for Self-Organization and Adaptive Service Placement in Dynamic Distributed Systems Artur Andrzejak, Sven Graupner,Vadim Kotov, Holger Trinks.
Layers and Views of a Computer System Operating System Services Program creation Program execution Access to I/O devices Controlled access to files System.
Distributed Scheduling
Challenges of Process Allocation in Distributed System Presentation 1 Group A4: Syeda Taib, Sean Hudson, Manasi Kapadia.
Distributed Real-Time systems 1 By: Mahdi Sadeghizadeh Website: Sadeghizadeh.ir Advanced Computer Networks.
Operating System Concepts and Techniques Lecture 5 Scheduling-1 M. Naghibzadeh Reference M. Naghibzadeh, Operating System Concepts and Techniques, First.
Review of Memory Management, Virtual Memory CS448.
1 Distributed Operating Systems and Process Scheduling Brett O’Neill CSE 8343 – Group A6.
Load Balancing in Distributed Computing Systems Using Fuzzy Expert Systems Author Dept. Comput. Eng., Alexandria Inst. of Technol. Content Type Conferences.
Chapter 5 Operating System Support. Outline Operating system - Objective and function - types of OS Scheduling - Long term scheduling - Medium term scheduling.
Computer Science Lecture 8, page 1 CS677: Distributed OS Last Class Threads –User-level, kernel-level, LWPs Multiprocessor Scheduling –Cache affinity –Preemption.
Memory Management – Page 1 of 49CSCI 4717 – Computer Architecture Memory Management Uni-program – memory split into two parts –One for Operating System.
CPU Scheduling CSCI 444/544 Operating Systems Fall 2008.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Distributed Real-Time Systems (contd.)
Computer Science Lecture 7, page 1 CS677: Distributed OS Multiprocessor Scheduling Will consider only shared memory multiprocessor Salient features: –One.
Lecture 7: Scheduling preemptive/non-preemptive scheduler CPU bursts
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Process-Concept.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Distributed Real-Time Systems.
DISTRIBUTED COMPUTING
Static Process Scheduling
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Processor Scheduling Hank Levy. 22/4/2016 Goals for Multiprogramming In a multiprogramming system, we try to increase utilization and thruput by overlapping.
Distributed Scheduling Motivations: reduce response time of program execution through load balancing Goal: enable transparent execution of programs on.
Lecture 4 Page 1 CS 111 Summer 2013 Scheduling CS 111 Operating Systems Peter Reiher.
Lecture 4 CPU scheduling. Basic Concepts Single Process  one process at a time Maximum CPU utilization obtained with multiprogramming CPU idle :waiting.
CPU scheduling.  Single Process  one process at a time  Maximum CPU utilization obtained with multiprogramming  CPU idle :waiting time is wasted 2.
The Principles of Operating Systems Chapter 9 Distributed Process Management.
Load Distributing Algorithm: Some load distribution algorithms are Sender Initiated algorithms Receiver Initiated algorithms Symmetrically Initiated algorithms.
Introduction to Load Balancing:
William Stallings Computer Organization and Architecture
Auburn University COMP7500 Advanced Operating Systems I/O-Aware Load Balancing Techniques (2) Dr. Xiao Qin Auburn University.
Module 9: Virtual Memory
5: Virtual Memory Background Demand Paging
Operating Systems.
Load Balancing/Sharing/Scheduling Part II
Outline Announcement Distributed scheduling – continued
Module 9: Virtual Memory
Presentation transcript:

Load distribution in distributed systems Objectives How to measure load Load distribution algs. classification static/dynamic load sharing/balancing preemptive/non-preemptive Quality evaluation Queue theoretic approach Algorithmic approach Components Transfer policy Selection policy Location policy Information policy Case study: V-System

Features of a good load distribution method No a priori knowledge about processes Dynamic in nature — change with system load, allow process migration Quick decision-making capability Balanced system performance and overhead — don’t reduce system performance by collecting state information Stability — don’t migrate processes so often that no work gets done (better definition later) Scalability — works on both small and large networks Fault tolerance — recover if one or more processors crashes

Measuring load (load index) number of processes may be inadequate - some are swapped out, dead, etc. length of ready queue, length of I/O queues correlates well with response time used extensively does correlate with CPU utilization, particularly in an interactive environment solution — use a background process to monitor CPU utilization (expensive!) have to account for delay in task transfer (incoming and outgoing) in CPU utilization

Classifying load distribution algorithms How is system state (load on each processor) used? Static / deterministic Does not consider system state; uses static information about average behavior Load distribution decisions are hard-wired into the algorithm Little run-time overhead Dynamic Takes current system state into account Has the potential to outperform static load distribution because it can exploit short-term fluctuations in system state Has some overhead for state monitoring Adaptive Modify the algorithm based on the state For example, stop collecting info (go static) if all nodes are busy so as not to impose extra overhead

Load balancing vs. load sharing How to distribute the load Reduce the chance that one processor is idle while tasks contending for service at another processor, by transferring tasks between processors Load balancing Tries to equalize the load at all processors Moves tasks more often than load sharing; much more overhead Load sharing Tries to reduce the load on the heavily loaded processors only Probably a better solution Transferring tasks takes time To avoid long unshared states, make anticipatory task transfers from overloaded processors to ones that are likely to become idle shortly Raises transfer rate for load sharing, making it close to load balancing

Preemptive vs. non-preemptive transfer can a task be transferred to another processor once it starts executing? non-preemptive transfer (task placement) can only transfer tasks that have not yet begun execution have to transfer environment info program code and data environment variables, working directory, inherited privileges, etc. simple preemptive transfers can transfer a task that has partially executed have to transfer entire state of the task virtual memory image, process control block, unread I/O buffers and messages, file pointers, timers that have been set, etc. expensive

Stability of a load-balancing algorithm Queuing-theoretic approach When the long-term arrival rate of work to a system is greater than its capacity to perform work, the system is unstable Overhead due to load distribution can itself cause instability Exchanging state, transfer tasks, etc. Even if an algorithm is stable, it may cause the system to perform worse than if the algorithm were not used at all — if so, we say the algorithm is ineffective An effective algorithm must be stable, a stable algorithm can be ineffective (?) Algorithmic perspective If an algorithm performs fruitless actions indefinitely with finite probability, it is unstable (e.g., processor thrashing) Transfer task from P1 to P2, P2 exceeds threshold, transfers to P1, P1 exceeds…

Components of a load distribution algorithm Transfer policy Determines if a processor is in a suitable state to participate in a task transfer Selection policy Selects a task for transfer, once the transfer policy decides that the processor is a sender Location policy Finds suitable processors (senders or receivers) to share load Information policy Decides: When information about the state of other processors should be collected Where it should be collected from What information should be collected

Transfer policy Determines whether or not a processor is a sender or a receiver Sender — overloaded processor Receiver — underloaded processor Threshold-based transfer Establish a threshold, expressed in units of load (however load is measured) When a new task originates on a processor, if the load on that processor exceeds the threshold, the transfer policy decides that that processor is a sender When the load at a processor falls below the threshold, the transfer policy decides that the processor can be a receiver Single threshold Simple, maybe too many transfers Double thresholds — high and low Guarantees a certain performance level Imbalance detected by information policy

Selection Policy Selects which task to transfer Newly originated – simple (task just started) Long (response time improvement compensates transfer overhead) small size with minimum location-dependent system calls (residual bandwidth minimized) lowest priority Priority assignment policy Selfish – local processes given priority – penalizes processes arriving at busy node Altruistic – remote processes given priority – remote processes may Intermediate – give priority on the ratio of local/remote processes in the system

Location policy Once the transfer policy designates a processor a sender, finds a receiver Or, once the transfer policy designates a processor a receiver, finds a sender Polling — one processor polls another processor to find out if it is a suitable processor for load distribution, selecting the processor to poll either: Randomly Based on information collected in previous polls On a nearest-neighbor basis Can poll processors either serially or in parallel (e.g., multicast) Usually some limit on number of polls, and if that number is exceeded, the load distribution is not done Can also just broadcast a query to find a node who wants to be involved

Information policy Decides: When information about the state of other processors should be collected Where it should be collected from What information should be collected Demand-driven A processor collect the state of the other processors only when it becomes either a sender or a receiver (based on transfer and selection policies) Dynamic — driven by system state Sender-initiated — senders look for receivers to transfer load onto Receiver-initiated — receivers solicit load from senders Symmetrically-initiated — combination where load sharing is triggered by the demand for extra processing power or extra work

Information policy (cont.) Demand-driven(cont.) Periodic Processors exchange load information at periodic intervals Based on information collected, transfer policy on a processor may decide to transfer tasks Does not adapt to system state — collects same information (overhead) at high system load as at low system load State-change-driven Processors disseminate state information whenever their state changes by a certain degree Differs from demand-driven in that a processor disseminates information about its own state, rather than collecting information about the state of other processors May send to central collection point, may send to peers

Case study: V-System developed at Stanford in 80-ies, microkernel-based, UNIX-emulating, binds several workstations on a LAN into a distributed system Load index – CPU utilization at the node information policy – state change driven (each node broadcasts whenever its state changes significantly, info is cashed by all nodes) State change (rather than demand-driven) scheme is selected because it does not vary as much with load Selection policy – only new tasks are scheduled for transfer Location policy each machine randomly selects one of the M lightly loaded machines from cache polls it (to verify the cache info) and transfers the task if cache data is not correct, cache is updated and a new machine is selected Usually no more than 3 polls are necessary