You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Helm安装的单副本ArgoCD的argocd-server内存过高如何排查?

argocd-server内存占用过高优先排查项

环境基础信息

已采集的集群资源信息如下:

# kubectl get all -n argocd 输出
NAME                                      READY   STATUS    RESTARTS   AGE
pod/argocd-application-controller-0       1/1     Running   1          124d
pod/argocd-dex-server-7946bfbf79-nknkx    1/1     Running   1          124d
pod/argocd-redis-7547547c4f-tv5db         1/1     Running   1          124d
pod/argocd-repo-server-7fb6c84b5b-ph5zl   1/1     Running   1          124d
pod/argocd-server-658fcf5695-hcjjx        1/1     Running   4          124d
# kubectl top pod 资源占用输出
NAME                             CPU(cores)   MEMORY(bytes)
argocd-server-658fcf5695-hcjjx   5193m        24365Mi

优先排查清单

  • 托管应用规模校验:统计集群内所有ArgoCD Application、ApplicationSet CR数量,argocd-server默认会全量缓存所有应用的资源状态,单实例托管超过100个应用时内存占用会线性上升,执行kubectl get applications -A | wc -l可直接统计总量。
  • 启动参数配置校验:检查argocd-server的环境变量配置,未配置GOGC参数时Go应用默认垃圾回收阈值为100,会导致内存占用居高不下,通常调整为GOGC=20可触发更频繁的GC降低内存占用;同时确认是否开启了debug级日志、全量资源同步等冗余特性,此类配置会大幅提升内存消耗。
  • 版本漏洞校验:确认当前ArgoCD版本是否存在已知内存泄漏问题,v2.3、v2.4的部分旧版本存在官方确认的argocd-server内存泄漏bug,升级到最新稳定版即可修复。
  • API请求量校验:排查是否存在高频API调用,如CI/CD系统频繁拉取应用状态、未认证的端口扫描攻击等,大量并发请求会产生大量临时内存对象无法及时释放,执行kubectl logs -n argocd argocd-server-658fcf5695-hcjjx可查看请求日志验证频次。
  • 资源限制配置校验:检查Helm部署时是否为argocd-server配置了合理的resources.limits.memory,未配置限制时应用会尽可能占用节点内存,可根据实际业务规模配置阈值,触发OOM前自动重启释放内存。
  • 跨组件通信校验:确认argocd-server与redis、repo-server、application-controller的通信是否正常,通信超时、请求失败会导致server反复拉取资源状态,堆积大量无效内存对象,可通过pod日志查看是否存在相关报错。

内容的提问来源于stack exchange,提问作者Park jinhong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:36:03