loadrunner+nmon 定位性能问题

目录:

  • nmon使用

 

  • nmon定位问题以及输出监控的数据

 

接口性能测试的过程步骤如下:

 

1

调试好loadrunner的脚本

 

 

2

在数据库里面准备好10万以上的数据,有些接口的要求是百万的

 

 

 

打开MySQL的慢日志开关,在MySQL的配置文件my.cnf里面配置

 

[mysqld]

 

slow_query_log=1 # 打开慢查询

 

slow_query_log_file=/data/mysql/mysqllog/logfile/slow-query.log #慢查询的日志保存路径

 

long_query_time=0.3 # 慢查询的时间,可以设置1秒开始

 

3

设计好场景,比如刚开始并发30个用户,每隔5秒增加2个用户

 

 

场景执行时间30分钟

 

 

停止脚本,一下子全部都停止

 

 

在场景里面,主要来关注tps和响应时间

 

 

设定loadrunner日志输出的地方

 

 

 

4

运行场景

 

点击数字连接信息,可以显示实时的TPS信息

 

 

在场景里面可以看到如下的数据,响应时间直线上升到1秒以上,TPS只有30不到

 

 

这个时候可以来排除是不是网络有延时,在loadrunner所在的机器pnig 服务器

 

 

可以看到响应时间很快,没有看到超时或者丢包,这个时候,也可以排除了网络瓶颈

 

5

查看服务器资源使用情况

 

1、准备好nmon

 

 

 

 

①、查看服务器操作系统的版本信息

 

②、[root@pertest0 data]# cat /etc/redhat-release

 

CentOS Linux release 7.6.1810 (Core)

 

③、 root用户登录系统,建立目录:

 

l[root@localhost data]# mkdir nmon

 

④、解压文件:[root@localhost data]# tar -zxvf nmon16f_mpginc.tar.gz -C /data/nmon/

 

l 这里选用nmon_x86_64_centos7

 

 

2、运行nmon l 在nmon目录下运行nmon_x86_64_centos7 [root@pertest0 nmon]# ./nmon_x86_64_centos7

 

输出如下信息:

 

 

命令说明

 

 

 

 

c: 提供关于物理CPU使用的详细信息

 

m: 提供内存使用的详细信息:系统(内核)和进程,活动虚拟内存

 

d: 提供关于磁盘,磁盘类型大小,可用空间,卷组,适配器等更详细 的信息

 

t: 当前进程详细情

 

P: Paging space 使用情况

 

k: 显示内核信息

 

 

  • Nmon 结果保存为文件

 

3、在当前界面输入:c,可以看到User%已经占用95%以上了

 

 

4、再输入:t,看哪个进程占用CPU比较高,可以看到是mysql进程

 

 

这里已经定位到问题了,那么下一步怎么办呢?

 

一般mysql占用CPU高,都是慢查询导致的,那么需要进入到慢查询日志里面去看日志信息

 

5、动态输出慢日志的信息,在日志里面找到一个“Query_time”,只要超过1秒以上就可以了

 

 

6、在MySQL的连接客户端里面查看该sql语句的执行计划,从select开始整个sql语句

 

 

可以看到type=ALL,是全表扫描,没有建立索引导致的

 

6

nmon后台运行

 

参数说明:

 

-f:按标准格式输出文件:_YYYYMMDD_HHMM.nmon

 

-m: 切换到路径去保存日志文件

 

-s: 每隔n秒抽样一次,这里为20

 

-c 取出多少个抽样数量,这里为30,即监控=20*30/60=10分钟

 

7

下载到本地,进行打开,查看性能监控结果

 

[root@pertest0 nmon]# sz pertest0_200528_2302.nmon

 

在nmon analyser v60.xlsm文件,点击Analyse nomn data按钮,选择下载下 来的结果文件

 

 

当有提示需要启用宏时,需要点击启用

 

 

选择文件

 

 

点击保存按钮

 

 

查看CPU相关的数据

 

 

 

 

posted @ 2020-06-11 14:59  柠檬班软件测试  阅读(273)  评论(0编辑  收藏  举报