1、jinfo
jinfo pid
功能:查看和修改java运行的环境和配置!
2、jmap
jmap -histo:live pid
功能:查看每个类占用的内存,内存占用比较大的需要分析对应的代码找出对应的问题或隐患。
3、jstack
jstack pid
功能:查看进程的堆栈快照信息;
jstack pid > xxx.x
功能:把进程的堆栈快照信息输出到xxx.x文件里,使用vim查看和分析正在运行的线程、线程等待、锁 等等信息;
jvm线程堆栈中的线程状态一共有以下:
1、TIMED_WAITING:出现在线程调用了wait(long)或者join(long)或sleep(long)的情况下
在线程堆栈中有两种常见表示:TIMED_WAITING (on object monitor)和TIMED_WAITING (sleeping)
2、WAITING:线程获得一个对象锁后,在该对象上等待其他线程来notify()
在线程堆栈中常见表示:WAITING (on object monitor)
3、BLOCKED:线程在等待临界资源被释放,比如等待另外一个线程释放临界资源
在线程堆栈中常见表示:BLOCKED (on object monitor)
4、RUNNABLE:当获得CPU的使用权时就可运行的线程,所以一次线程堆栈中可以有多个处于RUNNABLE状态的线程。该状态下,线程处于等待的原因,io,cpu时间片,而非锁,sleep().
在线程堆栈中常见表示:
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
4、jstat
jstat -gcutil pid
功能:查看新生代、年老代等等的使用情况(使用率),GC总时间等等。
命令中pid都是指需要查看的进程号。
注:这里只是介绍了几个常用的姿势,还有其他好多命令,可以留言!
【如有不正确的地方烦请指出,谢谢!】
相关推荐
- iOS“流泪认输”,麒麟OS1.0提前发布:能不能秒默安卓和iOS就看它了
- ColorOS 7.1自研技术立功,助力OPPO Ace2运行更流畅稳定
- 华为成功研制首台“台式电脑”AI性能全球第一:已正式实现商用
- Razer 烈焰神虫
- 惊鸿现世,承蒙华为,鸿蒙系统引领科技未来
- 阿里正式发布YunOS 6让谷歌彻夜难眠
- 已飞222亿公里的旅行者1号传回的最后一张照片,引起人类思考!
- 京东方已攻克LCD屏下指纹识别技术,华为、荣耀将首发
- 夏普因违反显示器专利合同需向LG显示支付约6.18亿元赔偿金
- TikTok出售或拖到11月美大选后
- 网站被黑后和网站被入侵更好的处理解决办法
- 外媒嘲讽中国只能用安卓苹果系统!任正非:我不用不代表我没有!
- Windows7序列号分享(神目网)
- 继阿里巴巴之后最大科技公司IPO,估值250亿美元的Snap或将于明年3月上市
- 一优网吧鼠标垫粗面锁边电竞游戏鼠标垫批发
发表评论