Linux 上 Go 应用性能调优实战指南
一 性能分析工具链
二 代码与运行时优化
三 系统层面优化
四 典型场景与优化策略
| 场景 | 主要症状 | 优化要点 |
|---|---|---|
| 高并发网络服务 | P95/P99 延迟抖动、连接超时 | 调整 GOMAXPROCS;增大 somaxconn 与 backlog;开启 tcp_tw_reuse;使用 worker pool 限流;用 pprof/trace 定位热点与阻塞 |
| 大对象频繁分配 | GC 停顿长、RSS 高 | 预分配容量;sync.Pool 复用;减少逃逸到堆;必要时用 GOGC 调参或 Ballast 平滑回收;用 easyjson 降低序列化开销 |
| 计算密集型批处理 | CPU 利用率低或波动大 | 合理并行度(≈CPU 核数);减少锁与系统调用;用 Benchmark 与 perf 找到热点函数并优化算法/内联 |
| 内存泄漏或增长不止 | RSS 随时间单调上升 | pprof heap 与 Goroutine 分析定位泄漏;避免全局缓存无界增长;必要时用 runtime.ReadMemStats 辅助观测 |
五 安全调优流程与注意事项