一次golang web的内存分析

栏目: Go · 发布时间: 6年前

内容简介:由于近期项目运行时,发现内存有一个规律性的增长。首先排查的是localcache的问题, 为了减少和redis的交互,对于一些热数据,同时更新频率也低,缓存周期内的数据延迟可以接受,采用了从redis读取到内存,进行二级缓存,缓存周期按数据量大小 为30s到10mins不等, 适当的调小内存中的周期减少了一部分内存的开销。这种内存占用毕竟占少数。需要分析其他占用。

一次golang web的内存分析

由于近期项目运行时,发现内存有一个规律性的增长。

首先排查的是localcache的问题, 为了减少和 redis 的交互,对于一些热数据,同时更新频率也低,缓存周期内的数据延迟可以接受,采用了从redis读取到内存,进行二级缓存,缓存周期按数据量大小 为30s到10mins不等, 适当的调小内存中的周期减少了一部分内存的开销。

这种内存占用毕竟占少数。需要分析其他占用。

用到的是 net/http/pprof 可在注册http路由时自定义,参考如下

path api
/debug/pprof pprof.Index
/debug/pprof/cmdline pprof.Cmdline
/debug/pprof/profile pprof.Profile
/debug/pprof/symbol pprof.Symbol
/debug/pprof/trace pprof.Trace

在运行服务的机器上,安装分析工具(对pprof生成的文件进行分析)

yum install graphviz

安装成功后,启动服务,执行下述命令

go tool pprof ./mm-go localhost:1601/debug/pprof/heap

输入 top10 查看内存占用前10的函数

得到的响应如下

Fetching profile from http://localhost:8080/debug/pprof/heap
Saved profile in /root/pprof/pprof.mm-go.localhost:1601.alloc_objects.alloc_space.inuse_objects.inuse_space.006.pb.gz
Entering interactive mode (type "help" for commands)
(pprof) top10
12369.14kB of 12369.14kB total (  100%)
Dropped 69 nodes (cum <= 61.84kB)
Showing top 10 nodes out of 23 (cum >= 512.02kB)
      flat  flat%   sum%        cum   cum%
10320.21kB 83.44% 83.44% 10320.21kB 83.44%  mm.com/priceServer.Worker.Start.func1.1
...

其中详细的数据如下表格

这样就能看到不同函数(func)占用内存大小以及占分配总内存的百分比了(flat)

flat flat% sum% cum cum% func
10320.21kB 83.44% 83.44% 10320.21kB 83.44% mm.com/priceServer.Worker.Start.func1.1
1024.41kB 8.28% 91.72% 1024.41kB 8.28% runtime.malg
512.50kB 4.14% 95.86% 512.50kB 4.14% runtime.allocm
512.02kB 4.14% 100% 512.02kB 4.14% runtime.rawstringtmp
0 100% 512.02kB 4.14% encoding/json.(*decodeState).literal
0 100% 512.02kB 4.14% encoding/json.(*decodeState).literalStore
0 100% 512.02kB 4.14% encoding/json.(*decodeState).object
0 100% 512.02kB 4.14% encoding/json.(*decodeState).unmarshal
0 100% 512.02kB 4.14% encoding/json.(*decodeState).value
0 100% 512.02kB 4.14% encoding/json.Unmarshal

根据提示查看内存占用较大的函数,来进行有针对性的优化


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

天涯虚拟社区

天涯虚拟社区

刘华芹 / 民族出版社 / 2005-11 / 23.00元

网络空间很复杂,好多人并不完全了解或者只是了解到一些皮毛。比如说好多人对于见网友一事总是抱着浪漫或者暖昧的想法,而事实却并不总是想象的那样。作者在做虚拟社区研究甚至是在有这个想法之前并不常呆在网上,互联网对于作者来说就是查查资料、收发信年、看看新闻的工具。担是看着越来越多的人把时间花在网上,一处文化上的直觉告诉作者:有一种新的生活方式产生了。强烈的好奇心驱使着作者走到了网上,走到了天涯虚拟社区,并......一起来看看 《天涯虚拟社区》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具