求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
性能监控过程常用工具
 
作者:xiaowan,发布于2012-9-3,来源:淘测试
 

上次参加了悟云同学的分享后,感触颇多啊,工具、命令,这些功能都太强大了。记得听过一句话:eclipse的快捷键用的越熟练,越是高手。工具、命令也同样如此。看到悟云那么熟练的操作,真是羡慕嫉妒啊,呵呵。玩笑之后总结下linux中常用性能监控工具和命令。

(1) top

一种监控进程和系统整体性能的理想方法,不受用户限制,普通用户和root用户都可以运行top。该命令通过用户按键来不断刷新当前状态。执行该命令后,它将独占前台,直到用户终止该程序为止。不过该命令中的很多特性都可以通过交互式命令或在个人定制文件中进行设定。

范例1:top命令查看系统状况

>top

top - 16:52:17 up 3 min, 1 user, load average: 0.10, 0.27, 0.14

Tasks: 55 total, 1 running, 54 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.3% us, 0.3% sy, 0.0% ni, 99.0% id, 0.0% wa, 0.3% hi, 0.0% si

Mem: 251924k total, 238168k used, 13756k free, 4420k buffers

Swap: 0k total, 0k used, 0k free, 165200k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

4404 root 15 0 66540 16m 13m S 0.3 6.9 0:02.31 kdeinit

1 root 16 0 1772 544 464 S 0.0 0.2 0:00.61 init

2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

其中每列显示的信息如下:

第一行:当前时间、系统启动时间、当前系统登录用户数目、平均负载;

第二行:进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数;

第三行:(CPU状态)用户占用、系统占用、优先任务占用、闲置任务占用;

第四行:(内存状态)平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存;

第五行:(交换状态)平均可用交换容量、已用容量、闲置容量、交换高速缓存容量;

剩下几行显示的就是各进程的列表情况。

(2) mpstat

该命令不但可以查看所有CPU的平均信息,还能查看指定CPU的信息。通过该命令查看的信息存放在proc/stat文件中

这里先补充两个文件:

/proc/stat如下

cpu 432661 13295 86656 422145968 171474 233 5346

cpu0 123075 2462 23494 105543694 16586 0 4615

cpu1 111917 4124 23858 105503820 69697 123 371

intr 1065711094 1057275779 92 0 6 6 0 4 0 3527 0 0 0 70 0 20 0 0

其中:第一行显示系统启动以后的平均信息;从第二行开始,输出前一个时间段的平均信息。

区别另一个文件:

/proc/loadavg: 该文件记录所有cpu的集合信息,显示为平均值,不能给出每个CPU的信息。

在回头看看mpstat,该命令结合不同的参数,会得到不同的期望结果。比如:不带参数时,输出为系统启动以来的平均值;再如:mpstat -P ALL 2 3 输出每2秒产生4个处理器的统计数据报告。

mpstat -P ALL 2 3

Linux 2.6.9-5.31AXsmp (builder.redflag-linux.com) 12/16/2005

09:38:46 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s

09:38:52 AM all 23.69 0.00 2.37 0.37 0.00 0.12 73.44 1028.36

Average: 0 2.00 0.00 1.16 0.17 0.00 0.17 96.51 48.75

Average: 1 65.72 0.00 3.16 0.67 0.00 0.00 29.95 12.31

其中第一行给出了从系统引导以来的所有活跃数据。后面的每行对应一个处理器的活跃状态。

(3) uptime

该命令用来报告系统已经运行多长时间

范例:

[root@localhost ~]# uptime

12:20:49 up 3 days,9:20, 5 users, load average 1.10 1.32 1.15

如上依次表达的信息是:现在时间、系统已经运行的时间、目前登录用户数、1分钟内的系统平均负载、5分钟内系统平均负载、15分钟系统平均负载。

一般情况下,如果系统有n个CPU而且平均负载小于n,说明某些CPU还有空闲的时间片。

通过该命令,我们可以确定cpu是否繁忙。

(4)Jstat

该命令可以帮助我们解决性能测试过程中:java虚拟机内存使用情况监控、判断JV,是否存在内存问题、垃圾回收是否正常这些问题。区别于top:top主要是监控总体饿系统资源,很难定位到java应用程序。

Jstat在性能测试过程中功能相当强大,下面详细介绍测试过程中共会用到的一些参数:

jstat -class pid:显示加载class的数量,及所占空间等信息;

jstat -compiler pid:显示VM实时编译的数量等信息;

jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间;

此外还有一个时间参数:

例如:

[root@localhost bin]# jstat -printcompilation 25917 1000 2

每1000毫秒打印一次,一共打印2次

Compiled Size Type Method

788 73 1 java/io/File <init>

788 73 1 java/io/File <init>

(5)jmap

该命令可以从进程中获得内存的具体匹配情况,包括heap size、perm size等。

例如:

[root@localhost bin]# jmap -histo 25917

Attaching to process ID 26221, please wait...

Debugger attached successfully.

Client compiler detected.

JVM version is 1.5.0_08-b03

Size Count Class description

-------------------------------------------------------

3722768 30467 * ConstMethodKlass

1976480 25334 char[]

1907880 46994 * SymbolKlass

。。。。

(6)jstack

jstack工具可以用来获得java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。

总结常用性能监测工具如上,期待更多工具,学以致用。


相关文章

微服务测试之单元测试
一篇图文带你了解白盒测试用例设计方法
全面的质量保障体系之回归测试策略
人工智能自动化测试探索
相关文档

自动化接口测试实践之路
jenkins持续集成测试
性能测试诊断分析与优化
性能测试实例
相关课程

持续集成测试最佳实践
自动化测试体系建设与最佳实践
测试架构的构建与应用实践
DevOps时代的测试技术与最佳实践


LoadRunner性能测试基础
软件测试结果分析和质量报告
面向对象软件测试技术研究
设计测试用例的四条原则
功能测试中故障模型的建立
性能测试综述
更多...   


性能测试方法与技术
测试过程与团队管理
LoadRunner进行性能测试
WEB应用的软件测试
手机软件测试
白盒测试方法与技术


某博彩行业 数据库自动化测试
IT服务商 Web安全测试
IT服务商 自动化测试框架
海航股份 单元测试、重构
测试需求分析与测试用例分析
互联网web测试方法与实践
基于Selenium的Web自动化测试
更多...