服务器内存飙升分析小记
1. 写在最前面
这个繁忙的八月真的是转瞬即逝,我明明感觉似乎好像才八月刚开始,但是其实已经到了八月的尾巴。这个月本来想抽空整理一下学习 AI 模型相关的东西,奈何每天不是在查问题就是在查问题的路上,不是在修 Bug 就是在写 Bug 的路上。
做人还是要乐观一点,这个月没有完成的目标,暂时移到下个月应该也问题不是很大(ps: 反正今年是要完成的
注:给自己记录一个未完事项,下个月一定要完成 AI 相关的知识补充
浅浅记录一下,最近排查的一个小问题 —「关于机器突然内存消耗飙升的分析思路」
2. 问题说明
问题:「QA 同学反馈,测试的任务退出以后,机器的内存没有下降,影响后面的测试进度」
思路:
-
快速确认问题描述是否为真存在
-
若
-
非真实存在,即定位监控数据可能存在问题
-
是真实存在,即快速查看消耗内
-
2.1 问题真实性
如果你问我为什么要对问题的真实性做一次额外的判断?
本人的血泪史告诉你,并非所有公司的数据都可以做到内网传输,没有丢失。有些公司涉及的服务范围可能是全球性的,考虑到成本问题,所以部分数据是会走公网传输的。(ps:公网传输,还要啥可靠性!
注:写到这里想到从前老板身上学习到的一个观点「他说的你也信」即无差别的怀疑所有收到的信息,虽然这玩意有利有弊,但是在遇到不靠谱的同事的时候,自己亲力亲为反而会更好
机器内存监控:
2.2 问题定位
当然由于这篇文档的记录,已经是分析完成之后进行,所以此处仅重新记录分析的步骤:
-
确认线上内存展示
-
查看内存消耗最高的进程,按照 MEM% 排序
2.3 命令学习
2.3.1 free
free命令可以查看Linux系统的内存使用情况,具体包括内存总量、已使用内存、空闲内存以及 Swap 分区情况。在终端输入 free 命令后会显示以下输出结果:
# free -h
total used free shared buff/cache available
Mem: 124G 5.4G 104G 16M 15G 118G
Swap: 0B 0B 0B
-
total 行显示系统总内存大小
-
used 行显示已使用的内存大小
-
free 行显示空闲的内存大小
-
buff/cache 行显示的是系统缓存和缓存中的空闲内存
-
available 行显示可用的内存大小,它并不包括实际没有被内核分配的内存。
2.3.2 htop
htop 是Linux系统中的一个互动的进程查看器,与 Linux 传统的 top 相比,htop 更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。更易于分析应用程序的内存泄漏问题。
这个命令没有更多的介绍,不过可以看看 help 命令的详细说明,每个都尝试着点一点。
比如它可以:
-
分析某个进程的 syscalls
-
分析某个进程的环境变量
-
分析某个进程的打开文件
3. 碎碎念
虽然是忙碌的一个月,但是保持身体健康、认真锻炼的目标有达成吖!
-
我们只是路过了很多个春天,但并没有错过,允许低落,但不要愁眉不展的生活,生活治愈的是愿意变好的人
-
不要担心 2 小时和 8 公里以外的事情
4. 参考资料
-
Linux内存占用分析的几个方法,你知道几个?
-
linux占用内存查询 --------------Linux内存占用分析的几个方法 - 往事已成昨天 - 博客园
-
Linux常用命令:htop(交互式进程查看器)【后台运行及查看状态命令】【top命令的升级版】_linux htop-CSDN博客