性能测试的内存瓶颈问题分析和调优

前言

做性能测试的时候,如果只管压测执行,不管分析和调优,那么就相当于看医生只管开化验单,不管治病开药,就是耍流氓的行为。所以,真正做性能测试的同学一定要会做性能结果分析和问题调优。

然后内存不足/内存泄露/内存溢出等内存问题是性能分析和调优非常常见的一类问题,所以,今天我们就来深入系统的学习一下内存相关的知识,以帮助大家在遇到内存性能瓶颈的时候进行分析和调优工作。

内存概念

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

图片.png

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

内存和外存区别

内存分析工具

在性能测试执行的过程中,我们需要用各种分析监控工具去观察内存的使用情况,以分析内存的性能瓶颈。常用的内存分析主要有如下几种:

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

图片.png

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

这是最常用的内存分析命令,包含的参数主要有:

图片.png

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

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

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

图片.png

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

图片.png图片.png

其中显示的信息解释如下:

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

图片.png

5、jmap命令,jdk自带的分析工具,专门用来分析java项目的内存情况

命令:jmap [options] pid,参数有:

图片.png

回帖
请输入回帖内容 ...