Large-scale cluster management at Google with Borg

Large-scale cluster management at Google with Borg

April 21-24, 2015, Bordeaux, France | Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, John Wilkes
Google's Borg system is a cluster manager that runs hundreds of thousands of jobs across thousands of applications and tens of thousands of machines. It achieves high utilization through admission control, efficient task-packing, over-commitment, and machine sharing, along with process-level performance isolation. Borg supports high-availability applications with features that minimize fault-recovery time and reduce the probability of correlated failures. It simplifies user experience by offering a declarative job specification language, name service integration, real-time job monitoring, and tools for analyzing and simulating system behavior. Borg's architecture includes a centralized controller (Borgmaster) and agent processes (Borglet) on each machine. The Borgmaster handles client requests, manages state, and communicates with Borglets. It is replicated for fault tolerance and uses Paxos for consensus. Borglet manages local resources, tasks, and reports machine state to the Borgmaster. Borg handles a heterogeneous workload, including long-running services and batch jobs. It uses a priority-based scheduling system with quota management to ensure fair resource allocation. Borg provides a stable name service for task discovery and monitoring, and includes a web-based UI for job management. Borg's scheduler assigns tasks to machines based on resource availability and user priorities. It uses a hybrid scoring model to balance resource efficiency and fairness. Borg also implements resource reclamation to free up unused resources for other tasks, improving overall utilization. Borg ensures high availability and reliability through replication, fault tolerance, and efficient resource management. It isolates tasks using Linux cgroups and chroot jails, preventing interference between tasks. Borg's design allows it to handle large-scale workloads efficiently, with high utilization and minimal resource waste. The system has been operational for over a decade, demonstrating its robustness and effectiveness in managing Google's extensive computing infrastructure.Google's Borg system is a cluster manager that runs hundreds of thousands of jobs across thousands of applications and tens of thousands of machines. It achieves high utilization through admission control, efficient task-packing, over-commitment, and machine sharing, along with process-level performance isolation. Borg supports high-availability applications with features that minimize fault-recovery time and reduce the probability of correlated failures. It simplifies user experience by offering a declarative job specification language, name service integration, real-time job monitoring, and tools for analyzing and simulating system behavior. Borg's architecture includes a centralized controller (Borgmaster) and agent processes (Borglet) on each machine. The Borgmaster handles client requests, manages state, and communicates with Borglets. It is replicated for fault tolerance and uses Paxos for consensus. Borglet manages local resources, tasks, and reports machine state to the Borgmaster. Borg handles a heterogeneous workload, including long-running services and batch jobs. It uses a priority-based scheduling system with quota management to ensure fair resource allocation. Borg provides a stable name service for task discovery and monitoring, and includes a web-based UI for job management. Borg's scheduler assigns tasks to machines based on resource availability and user priorities. It uses a hybrid scoring model to balance resource efficiency and fairness. Borg also implements resource reclamation to free up unused resources for other tasks, improving overall utilization. Borg ensures high availability and reliability through replication, fault tolerance, and efficient resource management. It isolates tasks using Linux cgroups and chroot jails, preventing interference between tasks. Borg's design allows it to handle large-scale workloads efficiently, with high utilization and minimal resource waste. The system has been operational for over a decade, demonstrating its robustness and effectiveness in managing Google's extensive computing infrastructure.
Reach us at info@study.space