性能测试之内存瓶颈问题分析与调优

news/2025/3/15 11:35:48/文章来源:https://www.cnblogs.com/xingzhifeng/p/18343748

注意:内存问题是性能分析与调优非常常见的一类问题(内存不足/内存泄露/内存溢出等)

一、内存概念:

计算机的存储系统分为主存储系统(内存) 辅助存储系统(外存)

外存 :计算机的辅助存储器,包括硬盘、软盘、光盘、网络云盘等 【输入-键盘,鼠标,输出- 屏幕,音频 视频】

内存:内存(Memory)又称主存,用于暂时存放中间态的临时数据:是外设与CPU进行沟通的桥梁

引发思考:为什么需要一个内存作为桥梁来链接CPU和外存呢? 为什么不直接设计CPU个内外直接连接交互呢?

(1) 因为外存的性能是比较差的,CPU速度非常的快,如果直接去外存获取数据,外设会拖垮CPU的性能。

(2) 所以可以理解为内存就是cpu和外设之间的缓存机制,CPU需要的数据先从外存加载到内存,提高cpu读取数据的效率和整体性能的。

二、内存和外存区别

速度不同: 内存要比外存速度快,但是比CPU要慢

容量不同: 内存一般几个G,外存一般几个T

访问权限不同:CPU只能直接访问内存;外存的东西要先到内存CPU才能处理

易失性不同:内存关机断电,数据就会全部丢失;外存数据一直都在

三、内存分析工具

1、/proc/meminfo,Linux内存总览

MemTotal:所有可用的内存大小(=物理内存 - 预留位和内核使用),所以小于物理内存
MemFree:表示系统尚未使用的内存
MemAvailable:真正的系统可用内存。这个使我们去看系统内存是否够用的重点数据。系统中有些内存虽然已被使用但是可以部分回收的(cache/buffer、slab)
Buffers :(缓冲)对原始磁盘块的临时存储,也就是用来缓存磁盘的数据。内核可以把分散的写集中起来,
      统一优化磁盘的写入 Cached :(缓存)从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。下次访问这些文件数据时,
      就可以直接从内存中快速获取

2、free命令:显示当前系统未使用的和已使用的内存数目,被内核使用的内存缓冲区;

最常用的内存分析命令,包含的参数主要有:
-h: 人类方便查看的格式显示
-c: 打印的次数
-s: 打印的时间间隔
-t:显示total 这个不太会去关注

显示的结果信息: 物理内存一行,交换分区一行

used:已经使用的内存大小;
MemTotal = used + free + buff/cache
avaliable=free+部分buff/cache
shared表示共享内存大小,一般用于进程间通信 

3、top命令| htop命令: 内存相关内容,进程内存使用情况分析

这两个命令都可以查看内存和CPU相关的信息,不过top是系统自带的命令,htop不是系统自带的,要额外安装:

yum -y install htop

htop的显示结果更加详细和友好一些:

1 关键信息用不同的颜色高亮显示了;
2 然后内存也默认用M为单位显示,更加直观;
3 command: 显示具体哪个命令 详细的执行启动命令都会显示
4 最底下还有一行快捷工具栏: 比如F6[. ] 可以选择进行排序; h【F1】可以看帮助文档

其中显示的信息解释如下:
VIRT:virtual memory usage,进程占用的虚拟内存大小。
RES:resident memory usage,进程常驻内存大小,也就是实际物理内存占用情况一般我们看进程占用了多少内存,就是看的这个值。
SHR:shared memory,共享内存大小,不常用。
%MEM: 进程所占用的物理内存百分比

4、vmstat,用于进行系统全局分析和内存监控分析  vmstat -S M 1

memory: 总内存大小 ,包括物理内存+ 交换分区内存swpd:使用的虚拟内存的大小。解释:如果该值大于0,表示你的机器物理内存不足了free:可用的物理内存大小;如果free很少,不一定内存不足; 如果同时si/so很少,是正常的;buff:物理内存用来缓存读写操作的buffer大小cache:物理内存用来缓存进程地址空间的cache大小swap:如果频繁写入写出,表示你的机器物理内存不足了。si(换入):每秒从SWAP(交换分区)读入到RAM的大小si>0,表明服务器需要更多内存,需要从SWAP上将内存段复制回内存,导致服务器速度变慢si=0,正常;长期都>0,可能存在性能问题so(换出):每秒从RAM写出到SWAP的大小so>0,并不能说明出现了内存瓶颈,写到交换分区是正常的bi(blocks in):表示从外部设备(如磁盘)读入到内存的数据块数量。在读操作中,随着数据的读取,bi的值会增加。
这反映了系统从外部设备读取数据的活动水平。bo(blocks out):表示从内存写出到外部设备的数据块数量。在写操作中,随着数据的写入,bo的值会增加。
这反映了系统将数据写入外部设备的活动水平。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778263.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【待做】【域渗透】获取域控方法总结

搭建虚拟环境 【域控】,192.168.10.3 【域成员】,192.168.10.4工具 mimikatz procdump64在域渗透中、作为渗透测试人员,获取域控的权限基本上可以获取整个内网的权限。在大多数情况下,攻击者可以通过定位域管理员所登录的服务器,利用漏洞获取服务器system权限,找到域管理…

南京大学计算机基础(四)踩坑笔记

第六周 缓冲区溢出章节 bang问题:每次输入的id将影响getbuf中的堆栈位置,用-u 12的ebp和-u 123的ebp位置就不一样。 注意汇编代码中不能出现a0(代表换行符),如果地址有a0就将它随便改改就行了(a0改为a8-0x8)。注意gdb如果不能重定向,可能是因为你修改了gdbinit:https://s…

【PythonRS】基于矢量点读取遥感影像波段值制作训练样本

在进行遥感定量反演或数据分析时,往往我们都具有矢量的真值,可能是点文件也可能是面文件,最重要的还是通过这个矢量获取影像中该区域的值,这样方便做波段分析以及后续的反演等流程。今天给大家分享一下如何通过点文件获取影像的波段值。​ 在进行遥感定量反演或数据…

17.python字符类型

python之字符类型字符串 (一)字符类型的符号: <class str> (二)查看字符类型语句:type()(三)常见的字符串类型语句: capitalize()、title()、count()、join、split、strip、strip、rstrip、startswith、startswith、endswith、find、rfind、replace、upper、…

SqlDbx客户端连接服务器Oracle数据库

查了很多文章,介绍的不对,走了好多弯路,最后整理一下,供参考 一、下载Oracle客户端1、SqlDbx如果是32位的,客户端也要下载32位的 2、Oracle客户端版本要和服务端版本一致(本例用的是12.1.0.2.0) 3、32位客户端下载地址:https://www.oracle.com/database/technologies/i…

Python异常处理机制

编程错误 编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运行时错误。 语法错误 语法错误,也就是解析代码时出现的错误。当代码不符合Python语法规则时,Python解释器在解析时就会报出SyntaxError语法错误,与此同时还会明确指出最早探测到错误的语句。例如: print …

洛谷P1223 排队接水

P1223 排队接水 题目描述 有 \(n\) 个人在一个水龙头前排队接水,假如每个人接水的时间为 \(T_i\),请编程找出这 \(n\) 个人排队的一种顺序,使得 \(n\) 个人的平均等待时间最小。 输入格式 第一行为一个整数 \(n\)。 第二行 \(n\) 个整数,第 \(i\) 个整数 \(T_i\) 表示第 \(…

Nessus Professional 10.8.0 Auto Installer for Ubuntu 24.04

Nessus Professional 10.8.0 Auto Installer for Ubuntu 24.04Nessus Professional 10.8.0 Auto Installer for Ubuntu 24.04 发布 Nessus 试用版自动化安装程序,支持 macOS Sonoma、RHEL 9 和 Ubuntu 24.04 请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-…

Fortinet FortiGate Firmware (FortiOS 7.6.0) 全系列下载 - 下一代防火墙 (NGFW)

Fortinet FortiGate Firmware (FortiOS 7.6.0) 全系列下载 - 下一代防火墙 (NGFW)Fortinet FortiGate Firmware (FortiOS 7.6.0) 全系列下载 - 下一代防火墙 (NGFW) 防特网 飞塔 防火墙 系统软件 请访问原文链接:https://sysin.org/blog/fortinet-fortigate/,查看最新版。原创…

哲讯智能:苏州SAP代理,引领企业智能化转型

苏州,这座融合古典与现代的城市,以其独特的魅力和创新精神,成为企业发展的热土。在数字化转型的大潮中,哲讯智能科技有限公司作为苏州地区值得信赖的SAP代理,致力于为企业提供全面的SAP解决方案,助力企业实现智能化管理和业务流程的优化。SAP系统的重要性SAP系统作为全球…

【闲话】08.05.24

又笑又哭的是什么毛病0805 闲话 头图:今日推歌: 《1212。》 エイハブ/A4。おおお のべつ幕無しのこの世 噢噢噢 如此无止境的人世间 本能の赴くままに 在本能的驱使下随之逐流 生きる意義は推して知るべし 最后在其中知晓活着的意义 そりゃ幸じゃんか 这是多么幸运啊好久没听…

《数据结构习题解析与实验指导_李冬梅,张琪编著》总结出的大纲

下面大纲为《数据结构习题解析与实验指导_李冬梅,张琪编著》总结出的大纲,可装13学习下: OnionYang@