
How we minimized the overhead of Kubernetes in our job system | Datadog
2/22/2021
This post details the process of minimizing overhead for a job system migrated to Kubernetes. It covers: 1. Designing performance experiments with comparable VM and Kubernetes setups. 2. Selecting appropriate performance metrics, specifically idle CPU and job completion throughput, and explaining why load average was misleading. 3. Tuning Kubernetes resource requests (CPU and memory) to achieve higher pod density per node. 4. Analyzing per-pod overhead by measuring `containerd-shim` CPU and memory usage. 5. Investigating work execution patterns using tools like `mpstat` to identify CPU utilization issues. The core contribution is the systematic approach to diagnosing and resolving performance regressions introduced by Kubernetes orchestration.