性能监控工具

性能是任何一款软件都需要关注的重要指标。除了软件的基本功
能,性能可以说是评价软件优劣的最重要的指标之一。我们该如何有
效地监控和诊断性能问题呢?本章基于实践,着重介绍一些针对系统
和Java虚拟机的监控和诊断工具,以帮助读者在实际开发过程中改善
系统性能。
本章涉及的主要知识点有:
· Linux下的性能监控工具。
· Windows下的性能监控工具。
· JDK自带的命令行工具。
· JConsole、Visual VM和Mission Control的介绍。

Linux下的性能监控工具

top命令----显示系统整体资源使用情况

top命令是Linux常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。top命令的部分输出如下:
在这里插入图片描述
top命令的输出可以分为两个部分:前半部分是统计信息,后半部分是进程信息。

在统计信息中,
第1行是任务队列信息,它的结果等同于uptime命令。从左到右依次表示系统当前时间、系统运行时间、当前登录用户数。最后的load average表示系统的平均负载,即任务队列的平均长度,其中的3个值分别表示1分钟、5分钟、15分钟到现在的平均值。
第2行是进程统计信息,分别是正在运行的进程数、睡眠进程数、停止的进程数、僵尸进程数。
等3行是CPU统计信息,us表示用户空间CPU占用率、sy表示内核空间CPU占用率、ni表示用户进程空间改变过优先级的进程CPU的占用率、id表示空闲CPU占用率、wa表示等待输入和输出的CPU时间百分比、hi表示硬件中断请求、si表示软件中断请求。
在Mem中,从左到右,依次表示物理内存总量、已使用的物理内存、空闲物理内
存、内核缓冲使用量。
在Swap中,依次表示交换区总量、空闲交换区大小、缓冲交换区大小。

top命令的第2部分是进程信息,显示了系统内各个进程的资源使
用情况,主要字段的含义如下。
· PID:进程ID。
· USER:进程所有者的用户名。
· PR:优先级。
· NI:nice值,负值表示高优先级,正值表示低优先级。
·%CPU:上次更新到现在的CPU时间占用百分比。
· TIME+:进程使用的CPU时间总计,单位为1/100秒。
·%MEM:进程使用的物理内存百分比。
·
VIRT:进程使用的虚拟内存总量,单位为KB,VIRT=SWAP
+RES。
·
RES:进程使用的、未被换出的物理内存大小,单位为KB,
RES=CODE+DATA。
· SHR:共享内存大小,单位为KB。
· COMMAND:命令名/命令行。

注意: 使用top命令可以从宏观上观察系统中各个进程的CPU占
用情况,以及内存使用情况。

vmstat命令-----监控内存和CPU

vmstat命令也是一个功能比较齐全的性能监测工具。它可以统计CPU、内存使用情况、Swap使用情况等信息。和sar工具类似,vmstat也可以指定采样周期和采样次数。

示例6-1】下例每秒采样一次,共计3次。
在这里插入图片描述
输出结果中各列含义如表6.1所示。

表6.1 vmstat命令输出结果中各列含义
在这里插入图片描述
以下代码显示了一个线程切换频繁的Java程序。
在这里插入图片描述
在这里插入图片描述
使用vmstat工具监控上述Java程序执行时的情况
在这里插入图片描述
可以看到,加粗部分有着很高的cs值(上下文切换)和us值(用户CPU时间),表明系统的上下文切换频繁,用户CPU占用率很高。注意: vmstat工具可以查看内存、交互分区、I/O操作、上下文切换、时钟中断及CPU的使用情况。

iostat命令—监控I/O

iostat命令可以提供详细的I/O信息,它的基本使用方法如下
在这里插入图片描述
在这里插入图片描述

以上命令显示了CPU的使用概况和磁盘I/O的信息。输出信息每1秒采样1次,合计采样两次。如果只需要显示磁盘情况,不需要显示CPU使用情况,则可以使用命令:
在这里插入图片描述
-d表示输出磁盘使用情况。输出结果中各列的含义如下。
· tps:该设备每秒的传输次数。
· kB_read/s:每秒从设备读取的数据量。
· kB_wrtn/s:每秒向设备写入的数据量。
· kB_read:读取的总数据量。
· kB_wrtn:写入的总数据量。
如果需要得到更多的统计信息,可以使用-x选项,如:
在这里插入图片描述
注意:
磁盘I/O很容易成为系统性能瓶颈,通过iostat命令可以快速定位系统是否产生了大量的I/O操作。

pidstat工具----多功能诊断器

pidstat是一个功能强大的性能监测工具,也是Sysstat的组件之一。读者可以在http://www.icewalkers.com/Linux/Software/59040/Sysstat.html下载这个工具。下载后,通过./configure、make、make install等3个命令即可安装pidstat工具。如
果是Ubuntu系统,也可以简单地通过以下命令安装:
在这里插入图片描述
pidstat工具的强大之处在于,它不仅可以监视进程的性能情况,也可以监视线程的性能情况。本节将详细介绍pidstat在这方面的功能。

1.CPU使用率监控

【示例6-3】下例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值