Java命令行实用工具jps和jstat
在Linux或其他UNIX和类UNIX环境下,ps命令想必大家都不陌生,我相信也有不少同学写过 ps aux | grep java | grep -v grep | awk '{print $2}' 这样的管道命令来找出Java进程的pid。常言道,Java并非真的"跨平台",它自己就是平台。作为平台,当然也有些基本的工具,让我们可以用更简单、更统一,同时又是非侵入的方式来查询进程相关信息。今天我们就来认识一下其中的两个。
jps
顾名思义,它对应到UNIX的ps命令。用法如下:
jps [ options ] [ hostid ]
其中,options可以用 -q (安静) -m (输出传递给main方法的参数) -l (显示完整路径) -v (显示传递给JVM的命令行参数) -V (显示通过flag文件传递给JVM的参数) -J (和其他Java工具类似用于传递参数给命令本身要调用的java进程);hostid是主机id,默认localhost。
jstat
用于输出给定java进程的统计信息。用法如下:
jstat -options 可以列出当前JVM版本支持的选项,常见的有 -class (类加载器) -compiler (JIT) -gc (GC堆状态) -gccapacity (各区大小) -gccause (最近一次GC统计和原因) -gcnew (新区统计) -gcnewcapacity (新区大小) -gcold (老区统计) -gcoldcapacity (老区大小) -gcpermcapacity (永久区大小) -gcutil (GC统计汇总) -printcompilation (HotSpot编译统计)
假定你要监控的Java进程号是12345,那么
jstat -gcutil -t 12345 200 300 即可每200毫秒连续打印300次带有时间戳的GC统计信息。
简单解释一下: -gcutil是传入的option;必选,-t是打印时间戳,是以目标JVM启动时间为起点计算的,可选;12345是vmid/pid,和我们从jps拿到的是一样的,必选;200是监控时间间隔,可选,不提供就意味着单次输出;300是最大输出次数,可选,不提供且监控时间间隔有值的话,就是无限期打印下去。
具体输出明细的解释请参考官方文档 http://download.oracle.com/javase/6/docs/technotes/tools/share/jstat.html
最新文章
- ASP.NET MVC搭建项目后台UI框架—7、统计报表
- Tomcat服务器中配置多个域名,访问不同的web项目
- Windows server 修改mysql端口
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
- jQuery选择器之动态列表显示Demo
- [转]C++学习心得
- HDU 5059 Help him(细节)
- DevExpress 控件使用之GridControl基本属性设置
- LSTM基础
- Redis配置主从复制
- 学用纯CSS打造可折叠树状菜单
- Day 6-3 粘包现象
- VS插件File Nesting
- Resct配置less
- python检测网络延迟
- dubbo-admin在jdk8下不兼容
- Swift: 用Alamofire做http请求,用ObjectMapper解析JSON
- MySql 正则表达式简介及使用
- apache 允许 访问软链接 ( Apache won't follow symlinks (403 Forbidden) )
- pyspark视频