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相关的数据

原文地址:https://www.cnblogs.com/nmb123/p/13093300.html