zoukankan      html  css  js  c++  java
  • 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相关的数据

  • 相关阅读:
    各种数据库查询表及表信息的SQL
    多维表头的DataGridView
    SQLite入门笔记
    配置WCF的心得
    JS键盘的键码
    ASP.NET的URL过滤
    利用反射查看类成员
    一个简单的MVC示例
    一个日志类 LogUtil
    一个IniHelper
  • 原文地址:https://www.cnblogs.com/nmb123/p/13093300.html
Copyright © 2011-2022 走看看