Linux上 GitLab 的性能瓶颈与定位路径
一、常见瓶颈概览
二、快速定位步骤与关键命令
三、典型症状与瓶颈映射
| 症状 | 高概率瓶颈 | 快速验证 | 优先动作 |
|---|---|---|---|
| 页面/接口间歇性卡顿或超时 | CPU 饱和、并发过高 | top/vmstat 显示 us/sy 高、负载高 | 降低 Unicorn/Puma/Workhorse/Sidekiq 并发,扩容 CPU |
| 推送/克隆慢、CI 阶段卡住 | 存储 I/O 延迟高 | iostat 高 await、svctm,磁盘 %util≈100% | 更换为 SSD/NVMe、分离构建与仓库盘、限流大对象 |
| 高峰期频繁 502/504 | 内存不足 导致 OOM/重启 | free 低、swap 频繁、进程被 kill | 增加内存;下调 Unicorn/Sidekiq 并发与内存上限 |
| 搜索/报表/后台任务慢 | PostgreSQL 慢查询/连接不足 | 慢查询日志、连接数打满 | 建索引/分析表、调大连接池、优化查询 |
| 登录/页面加载慢 | Redis 缓存失效/队列积压 | Sidekiq 队列增长、命中率下降 | 清理膨胀键、扩容 Redis、优化过期策略 |
| 偶发 DNS/网络超时 | 网络/DNS 问题 | ping/nslookup 高时延或丢包 | 优化 DNS、就近接入、检查防火墙与带宽 |
四、配置与架构层面的优化要点