服务器内存飙升分析小记

avatar
作者
筋斗云
阅读量:0

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. 参考资料

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!