原文请访问:
https://blog.csdn.net/u011236069/article/details/122921084
摘要
问题发生在周末,正在家休息突然接收到告警信息提示linux内存使用率超过90%,刚接收到信息以为是程序发生了内存泄漏。登录Linux通过top命令发现系统占用内存正常。各进程内存使用率都很低
使用命令:free -h 查看内存使用情况
命令:free -h
下图为已经清理后的可以看到used使用了1.8GB,当时告警used为6.3GB而且还在持续增长中
使用:通过释放 文件缓存,手动释放缓存的方法
命令:echo 3 > /proc/sys/vm/drop_caches
used的内存并没有被释放,当时依旧是6.3GB
参考:https://blog.csdn.net/u011236069/article/details/122924687
思路一:
因为当时Linux上只部署了一个应用,因此内存使用率定位是应用服务内存泄露导致。
命令:top -o %MEM
可以看到java应用占用的内存还是正常的。也就是说还有其他环节在占用内存
思路二:
于是找小组其他同学沟通内存使用率告警,可能是由我们在Linux上的探活脚本导致
命令:ps -ef | grep live
当时进程大约有几十个相关
循环清理命令
命令:kill -9 `ps -ef| grep live |awk ‘{print $2}’ `
清理后释放大约1GB内存
思路三:脚本执行占用内存,tail等日志查看命令是否会产生内存?
命令1:ps -ef |grep tail 发现有上千此tail调用
命令2批量删除:kill -9 `ps -ef| grep tail |awk ‘{print $2}’ `
命令3:free -m 查看清理结果used降到518MB 内存释放结束,程序正常启动
————————————————
版权声明:本文为CSDN博主「二爵爷点灯」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011236069/article/details/122921084
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/269267.html