最近发现生产上某Golang服务内存稳步飙升,通过监控完全看不到有内存降低时候。而奇怪的是,同样的版本放到其他环境上则没有这个问题。
在内部弄了个环境开启pprof,反复压测,一直无法重现问题。于是回过头去检查监控的数据是否有误差。经检查发现prometheus上抽取的数据达930M,而通过 docker 以及其他系统方式查到的数据不到20M。经反复对比发现,prometheus上抽取的数据是包含缓存的数据,单独查询此服务的缓存,则数据为900M+,差额部分数据与docker查询出来接近,如此判断问题在于缓存。
最后,发现,日志文件没有配置log rotation,大小已经达到了12G。清空日志后惊喜的发现,内存瞬间暴降至20M。
以上所述就是小编给大家介绍的《一次Golang 内存占用偏高的调查》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 原 荐 java计算对象占用内存大小:lucene专用于计算堆内存占用大小的工具类
- .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
- mariadb 内存占用优化
- MariaDB内存占用优化
- 使用zram减少内存占用
- JVM内存占用情况深入分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。