记录golang服务器内存的一次优化

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

问题:运维在更新版本之后 再次启动服务器的时候 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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值