您的当前位置:首页正文

性能测试学习 10 服务器性能监控指标及命令

来源:华佗小知识

在做任何测试时,都需要对测试的结果有一个直观的体现,可能是页面上的报错、乱码、功能无法实现等等。。。。在进行性能测试时,我们需要时刻关注施压端、应用服务器、数据库服务器等设备的表现情况,如果有第三方的监控软件,我们可以通过软件直观的进行分析,如果没有第三方的软件,则可以用过自身携带的参数进行查看

此处只表述个人接触的设备,欢迎探讨对其他设备的监控

在使用Java进行开发中,遇到的性能问题包括:

   1)OutOfMemoryError,内存不足

   2)内存泄露

   3)线程死锁

   4)锁争用(Lock Contention)

    5)Java进程消耗CPU过高

。。。。。。。等等

我们可以根据数据的流向一点一点的排查问题的原因,然后根据不同设备的特点制定测试场景及脚本。

数据流向:用户——网络—应用服务器(tomacat)——后台数据库—数据落地(数据是否写入到数据库或者查询到)

一、  基本性能监控指标及问题

基本指标

1、对于Windows的系统来说,直接使用:任务管理器进行监控即可

2、对于Linux的系统来说,可以使用相应的命令进行查看,一般的服务器均使用Linux系统。

二、性能命令(Top、vmstat、jsatack(堆日志)、jstat -gcutil(E,S0、 S1)、free、fdisk)

1、top 实时查看进程对系统资源使用情况(CUP、内存、I/O)

top命令

load average:分别表示1分钟、5分钟、15分钟CPU的使用平均值

2) 在top之后 按1 查看单个CUP的详细信息:

单个CPU

其中:

us:用户占用的cup

sy:系统占用的cpu

id :cpu处在空闲状态的时间百分比。

wa:IO等待所占用的CPU时间的百分比。

wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的

2、vmstat、iostat 查看:memory、CPU 、IO、内存使用情况

两个命令查看到的数据与Top类似

用法:vmstat  【n】+ 【m】  :每隔n秒钟刷新,抓取m次数后退出。

swpd:可用的虚拟内存交换内存

free:空闲内存,空闲越多越好

3、jstack 检查死锁

用法:jstack+进程ID

结果标志:fand   deadlock

死锁查询

然后从打印的内容中进行查找,是否有死锁

4、jstat -gcutil 查看GC的使用情况

用法:jstat -gcutil +进程ID+时间(毫秒)+加上统计的次数

查看GC

关注指标:YGC、FGC

如果有频繁FGC,需要dump下GC日志(GC日志,在配置jvm参数的时候,会配置GC日志地址)

5、free查看内存使用情况


PS:Buffer与cash的却别

文件属性:目录、权限的信息暂时存放在buffer ,文档内容存储在cash 中

6、fdisk 磁盘管理

可以进行磁盘的新增、删除、修改

7、df -h 查看分区使用情况

df -h

每一列分别对应:分区名、大小、使用量、剩余量、使用百分比、挂载点

PS:tmpfs是个特殊分区,可以理解为2.6内核带来的新功能,更好、更高的提高内存和虚拟空间的技术