内容简介:内存问题一直是服务器一个老大难,最近线上有遇到一个棘手的内存泄露。记录分享一下 希望可以起到抛砖引玉的效果。同时给方便自己好记性不如烂笔头。使用 gin web框架所以使用了 github.com/DeanThompson/ginpprof
内存问题一直是服务器一个老大难,最近线上有遇到一个棘手的内存泄露。记录分享一下 希望可以起到抛砖引玉的效果。同时给方便自己好记性不如烂笔头。
使用 gin web框架
所以使用了 github.com/DeanThompson/ginpprof
用法 跟 pprof 一样 只是 复用ginweb端口
go tool pprof -inuse_space http://***.com/debug/pprof/heap
pprof.png
我这个懒捣鼓半天,最好想看下堆栈
看内存堆栈1.png
查看堆栈2.png
坑爹代码.png
结果是gorm 事务 begin了,在特定条件下 没有 Commit 或者 Rollback 。导致内存泄露。socket 句柄泄露。
#使用指令 查看句柄 lsof
查看句柄.png
#统计句柄数量 lsof |grep TCP|wc -l
统计句柄数.png
#进程句柄 ll /proc/pid/fd #统计进程句柄数 ll /proc/pid/fd|wc -l
根据进程号查句柄.png
变量使用范围特别重要,因为分支会导致结果不一样。加大定位难度。
想c++(cppcheck) java(findbugs) 有代码分析 工具 可以分出这个bug避免用写轮眼找bug(我的眼快瞎了都是血丝)。go 的话 golint 和 gometalinter。不过 不知道 是我有点傻不拉几。一直分析出来的结果跟我要的有差役(持续学习ing)。goland集成的是可以分析到函数未使用更深级别的分析还找到有这样牛逼的软件。如果有找到 可以分享给我,一起交流成长。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 用 recon 定位 Erlang 内存泄露问题
- 认识绝对定位,相对定位
- 移动端页面头部固定定位的绝对定位实现
- webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案——第五课
- IP 地址怎么定位?
- # CSS 绝对定位释义
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C语言从入门到精通
王娣//韩旭 / 清华大学 / 2010-7 / 49.80元
《C语言从入门到精通》从初学者的角度出发,以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识。全书共分17章,包括C语言概述,算法,数据类型,运算符与表达式,常用的数据输入、输出函数,选择结构程序设计,循环控制,数组,函数,指针,结构体和共用体,位运算,预处理,文件,存储管理,网络套接字编程和学生成绩管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出......一起来看看 《C语言从入门到精通》 这本书的介绍吧!