举例: iostat -d -k 2
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次 。
pidstat命令:pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况 。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息 。用户可以通过指定统计的次数和时间来获得所需的统计信息 。
如:查看所有进程的 CPU 使用情况( -u -p ALL)

文章插图
2)windows工具
任务管理器:Windows系统的任务管理器是大家最为熟知的一款系统工具,通过Ctrl+Alt+Del组合键便能呼出,功能非常强大的一款新能统计工具 。
perfmon性能监控工具:与任务管理器相比,可以说是windows下专业级的性能监控工具了,不仅可以监控计算机系统的整体运行情况,也可以专门针对某一个进程或者线程进行状态监控 。
可以在Windows任务栏的开始菜单的“运行”对话框使用perfmon命令打开该工具 。
3)JDK命令行工具
在JDK的开发包中有一系列的辅助工具,可以帮助开发人员很好地解决Java应用的一些疑难杂症 。这些工具在JDK安装目录的bin目录中 。有哪些命令可以辅助呢?如下所示:
jps命令:jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm进程,否者查看指定的hostid机器上的jvm进程,此时hostid所指机器必须开启jstatd服务 。jps可以列出jvm进程lvmid,主类类名,main函数参数, jvm参数,jar名称等信息
命令用法: jps [options] [hostid]
options:命令选项,用来对输出格式进行控制
hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口 。
jstat命令:jstat是一个可以用于观察Java应用程序运行时信息的工具 。它的功能非常强大,可以通过它,查看堆信息的详细情况
jinfo命令:jinfo是jdk自带的命令,可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数 。通常会先使用jps查看java进程的id,然后使用jinfo查看指定pid的jvm信息.
jmap命令:Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本 。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况( 如:产生那些对象,及其数量) 。
jhat命令:jhat也是jdk内置的工具之一 。主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言
jstack命令:jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题 。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的 。**jstatd命令:**此命令是一个RMI Server应用程序,提供了对JVM的创建和结束监视,也为远程监视工具提供了一个可以attach的接口
hprof工具:HProf是JDK自带一个简单的性能分析工具 。它是一个动态链接库文件,监控CPU的1使用率、内存堆栈分配情况等
命令的详细使用方法可搜索相关资料,此处不再展开讲解
四、小结本小节主要介绍了常用的性能采集工具和故障排查工具 。基于linux系统和Windows系统的性能采集工具,使用这些工具,有助于帮助开发者定位性能瓶颈 。JDK自带的一些性能和故障排查相关命令,如jps、jstack、jmap等,以及免费的可视化工具JConsole、Visual VM 。下一小节我们会介绍JVM调优方法 。
推荐阅读
- Java工具包之轻松理解Java中的IO与NIO
- JavaScript数组去重的方法有哪些?学会这9招,再也不怕算法题了
- Go 和 Java 对比学习:单例模式
- 你的接口参数怎么接收的
- Graal VM:云原生时代的Java
- PHP操作2亿条数据单表性能评测
- 高性能无锁并发框架Disruptor,太强了
- Tinyid 深度解密滴滴的高性能ID生成器
- 智能手机|性能王者2499元起 一加Ace手机发布:定制天玑8100+150W长寿闪充
- 初学者应该看的JavaScript Promise 完整指南
