How We Found 7 TiB of Memory Just Sitting Around
7 months ago
- #Optimization
- #Scalability
- #Kubernetes
- 拥有大量命名空间的Kubernetes集群会因listwatch操作导致内存开销增加并加重apiserver负载
- Daemonsets通过在各个节点执行listwatch操作加剧了这一问题,进一步推高内存使用和apiserver负载
- 针对Calico的优化虽降低了内存占用,但发现另一个daemonset——Vector通过listwatch命名空间消耗了大量内存
- 解决方案是移除Vector中不必要的命名空间标签检查,这使得内存使用降低了50%
- 发现一个配置错误:修复措施仅应用于两个kubernetes_logs数据源中的一个,修正后实现了显著的内存节省
- 最终修复方案使集群总内存占用减少7TiB,系统效率和部署稳定性得到显著提升