当前位置: 首页 > article >正文

服务器内存飙升分析小记

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博客


http://www.kler.cn/a/282893.html

相关文章:

  • unity单例模式的不同声明(待完善
  • 如何保证Redis与MySQL双写一致性
  • 浅谈“通感一体”
  • CSS:怎么把网站都变成灰色
  • Vue3 -- 环境变量的配置【项目集成3】
  • 封装一个省市区的筛选组件
  • PostgreSQL遍历所有的表并设置id为自增主键(基于自建函数)
  • FineReport帆软报表:使用JAVA批量更新报表里的数据集连接名
  • 【python量化分析专题】最新整理的已经实测可用的各类免费股票数据接口之实时交易数据
  • 『大模型笔记』林纳斯·托瓦兹(Linux之父):谈论热议与人工智能的未来!
  • Linux 网络技术栈,看这篇就够了!!
  • 【ACM独立出版 | 厦大主办】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024,10月18-20)
  • 基于web 在线影院系统网站设计与实现
  • 交通流量监测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • Qt 调用执行 Python 函数
  • zookeeper服务器动态上下线监听案例
  • 【MySQL数据库管理问答题】第4章 配置 MySQL
  • SpringBoot应用打成ZIP部署包
  • 18.神经网络 - 非线性激活
  • 【机器学习】梯度下降算法
  • 源码编译并安装Squid的方法
  • BEVDet4D:多帧时序信息融合方法详解
  • 富格林:正规方式顺利盈利出金
  • 性能测试的基本概念
  • Pycharm安装报错:Cannot detect a launch configuration 解决办法
  • 吴恩达机器学习笔记 四十五 基于内容的过滤的tensorFlow实现