GitLab在CentOS上的性能瓶颈排查路线图
一 快速定位瓶颈
二 常见瓶颈与验证方法
| 瓶颈维度 | 典型症状 | 快速验证 | 进一步定位 |
|---|---|---|---|
| CPU | 负载高、响应变慢 | vmstat 1 显示 us/sy 高、idle 低 | 按进程排序 top/htop;perf/top -H 查热点函数 |
| 内存 | OOM、频繁换页、服务抖动 | free -h 显示可用内存低、si/so 高 | ps/top 看 puma/sidekiq 内存;检查是否缺 Swap |
| 磁盘 I/O | 拉取/克隆慢、CI 卡顿 | iostat -x 1 显示 await、svctm、util 高 | 查磁盘空间 df -h;定位大文件/日志/备份 |
| 数据库 | 页面打开慢、Sidekiq 堆积 | 慢查询日志、连接数高 | 检查索引/统计信息、锁等待、连接池配置 |
| 缓存 | 命中低、DB 压力高 | Redis 命中率下降、慢日志增长 | 排查缓存穿透/雪崩、大 key/热 key |
| 并发与配置 | 高峰期卡顿、502/504 | 观察 puma/sidekiq 进程数与队列 | 复核并发/超时/队列配置与实例规格匹配 |
| 网络 | 克隆慢、超时 | ping/ss/traceroute 异常 | 检查带宽、丢包、TLS 握手时延 |
| Gitaly/存储后端 | 仓库操作慢、超时 | 仅仓库操作慢、静态资源正常 | 核查 Gitaly 负载、磁盘/网络、是否需集群化 |
| 外部依赖 | 登录/认证慢、Webhook 延迟 | 仅依赖外部服务时慢 | 检查 LDAP/SSO、对象存储、第三方 API 延迟 |
| 以上症状与验证方法可交叉印证,优先排除资源与 I/O,再深入到数据库、缓存与并发配置。 |
三 关键指标与阈值建议
四 排查顺序与工具命令清单
五 临时止血与后续优化