记录一次服务器优化的流程 方便下次遇到相同问题时 可以更快定位到问题 从而进行优化

问题:运维在更新版本之后 再次启动服务器的时候 25个服只启动了一半 剩下的一半因为内存不足 无法启动
优化前

var mem runtime.MemStats
runtime.ReadMemStats(&mem)
// HeapSys 程序向应用程序申请的内存
// HeapAlloc 堆上目前分配的内存
// HeapIdle 堆上目前没有使用的内存 
// HeapReleased 回收到操作系统的内存
logger.Info("性能测试: %d,%d,%d,%d\n", mem.HeapSys, mem.HeapAlloc, mem.HeapIdle, mem.HeapReleased)

日志打印为:2022/05/06 11:04:41.426 [I] [main.go:99] 性能测试: 1374912512,602855752,712720384,711729152

查看内存使用情况 用到了pprof插件

_ "net/http/pprof"
err := http.ListenAndServe("localhost:6163", nil)
http://localhost:6163/debug/pprof
go tool pprof http://localhost:6163/debug/pprof/profile
web

经过分析内存使用 最大的一个内存使用是表结构的字段检查 而这个可以放在压表的时候 在服务器启动的时候就不需要这个

经过优化之后的日志打印:2022/05/06 11:07:37.480 [I] [main.go:96] 性能测试: 754089984,697006896,6627328,6209536

向内存申请的内存减少了将近一半