在CentOS中排查Golang性能瓶颈可从系统、代码、工具三方面入手,具体如下:
/etc/sysctl.conf,优化网络(如net.ipv4.tcp_max_syn_backlog)和文件描述符限制(ulimit -n 65535)。sync.Pool复用对象,避免循环中频繁创建临时对象。goroutine和channel,避免过多goroutine导致调度开销,可通过GOMAXPROCS设置CPU核心利用率。bufio包)、连接池减少系统调用。http://localhost:6060/debug/pprof/profile生成火焰图,定位高耗时函数。http://localhost:6060/debug/pprof/heap,查看内存分配及泄漏点。http://localhost:6060/debug/pprof/goroutine检测goroutine数量及阻塞情况。go test -bench对比不同代码实现的性能差异。参考来源: