性能测试分析监控常见方法介绍

 针对性能测试过程中常用的一些监控命令及工具进行梳理。

一、服务器监控

服务器级别监控主要看以下方面

一般使用监控方式如下:

top命令:

查看当前系统CPU的使用情况

 

输入1可以查看全部CPU的情况

free -m命令:

查看当前系统内存的使用情况(以MB为统计单位)

 

输出结果:

buffer和cache: 都是Linux下的缓存机制,其中buffer为写操作的缓存,cache为读操作的缓存。

swap: 交换空间,磁盘上的一块空间,当系统内存不足时,会使用交换空间

df -h命令:

查看当前系统磁盘空间的使用情况

 

iostat命令:

iostat -x -k 1  

-x:展示磁盘的扩展信息    -k:以k为单位展示磁盘数据   1:每1秒刷新一次

主要关注指标  util:磁盘IO使用率,单位%,反映磁盘的繁忙程度,上限100%

 

vmstat命令:

综合显示了CPU、进程、内存、磁盘IO等信息

vmstat 1  #  1 刷新频率

 

dstat命令:

是较全能的全能监控工具,支持实时刷新。

需要先安装才可以使用:yum install dstat

dstat -tcmnd --disk-util 

 

nmon:

可以使用对应的EXCEL生成一些服务器相关指标的图形,针对稳定性场景比较合适,同时里面的图表可以用作测试报告,非常使用,之前写过这方面的介绍,有兴趣可以点击看看【nmon介绍及使用】

 

、应用级别监控

java程序监控

1) 命令行监控:

监控jvm的GC情况 : jstat -gcutil pid 1000 100

替换PID为指定的进程号,1000代表刷新频率  100代表输出100次

查看jvm配置信息: jmap -heap pid:
可以看到java进程的堆的配置信息,各区的空间大小和配置信息

查看jvm中类和对象的占用情况: jmap -histo 5279 | head -20

查看jvm中各个类的实例数、占用内存数量以及类的全名

堆文件dump: jmap -dump:format=b,file=m.hdump 19300
对堆内存进行dump,以文件的形式进行保存下来,可以用jvisualvm等工具对文件进行分析

 

 通过装入本地的工具,可以查看详细情况

2) 工具类监控:

jvisualvm

  JDK提供的一个JVM运行监控工具,可用于查看dum文件,CPU及内存的占用情况,GC垃圾回收情况等信息。

   监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,第二行 添加

   JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.0.10"

  注意这里是一行,hostname需修改成服务器的地址,端口用一个没用过的即可。

  重启之后就可以使用在控制台输入 jvisualvm 打开界面监控相关程序。

 

Arthas(阿尔萨斯)

  阿里巴巴开源的Java诊断工具,深受开发者喜爱。

  下载: curl -O https://alibaba.github.io/arthas/arthas-boot.jar

  启动:java -jar arthas-boot.jar 进入到arthas交互环境  

   

  输入命令:

  help:会出现所有arthas支持的命令

  thread:列出线程的信息,按照cpu占用率从高到低列出来,如果线程太多,可以通过-n参数指定输出的行数。  

  

       thread -b:可以查看block的线程  

  

       dashboard :可以实时查看内存的情况,定位内存溢出问题。

   

原文地址:https://www.cnblogs.com/leixs/p/14643931.html