Large-scale cluster management at Google with Borg

Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, John Wilkes
2015 Proceedings of the Tenth European Conference on Computer Systems - EuroSys '15  
Google's Borg system is a cluster manager that runs hundreds of thousands of jobs, from many thousands of different applications, across a number of clusters each with up to tens of thousands of machines. It achieves high utilization by combining admission control, efficient task-packing, over-commitment, and machine sharing with process-level performance isolation. It supports high-availability applications with runtime features that minimize fault-recovery time, and scheduling policies that
more » ... duce the probability of correlated failures. Borg simplifies life for its users by offering a declarative job specification language, name service integration, real-time job monitoring, and tools to analyze and simulate system behavior. We present a summary of the Borg system architecture and features, important design decisions, a quantitative analysis of some of its policy decisions, and a qualitative examination of lessons learned from a decade of operational experience with it. † Work done while author was at Google. web browsers BorgMaster link shard UI shard BorgMaster link shard UI shard BorgMaster link shard UI shard BorgMaster link shard UI shard Cell Scheduler borgcfg command-line tools web browsers scheduler Borglet Borglet Borglet Borglet BorgMaster link shard read/UI shard config file persistent store (Paxos) Figure 1: The high-level architecture of Borg. Only a tiny fraction of the thousands of worker nodes are shown. cluding with a set of qualitative observations we have made from operating Borg in production for more than a decade.
doi:10.1145/2741948.2741964 dblp:conf/eurosys/VermaPKOTW15 fatcat:jkpvjxxjczdwnetfl2ufhhooja