jmap的几个操作要慎用
来源:互联网 发布:淘宝手办良心店铺 编辑:程序博客网 时间:2024/05/17 01:36
JDK中带有了一堆的工具是可以用来查看运行状况,排查问题的,但对于这些工具还是要比较清楚执行后会发生什么,否则有可能会因为执行了一个命令就导致严重故障,重点讲下影响比较大的jmap。
最主要的危险操作是下面这三种:
1. jmap -dump
这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用。
2. jmap -permstat
这个命令执行,JVM会去统计perm区的状况,这整个过程也会比较的耗时,并且同样也会暂停应用。
3. jmap -histo:live
这个命令执行,JVM会先触发gc,然后再统计信息。
上面的这三个操作都将对应用的执行产生影响,所以建议如果不是很有必要的话,不要去执行。
另外,在排查问题的时候,对于保留现场信息的操作,可以用gcore [pid]直接保留,这个的执行速度会比jmap -dump快不少,之后可以再用jmap/jstack等从core dump文件里提取相应的信息,不过这个操作建议大家先测试下,貌似在有些jdk版本上不work。
之前碰到过一次语言集的问题,我们的Java应用多数在做字符串转码的时候是没有指定编码的,编码信息主要靠启动脚本里面设置LANG来控制,但没想到在某种场景下,竟然有地方设置了LC_ALL,在 之前的一篇语言集的文章 中,有讲过LC_ALL的优先级是最高的,所以导致启动脚本里设置的LANG失效了,从而导致了乱码,这个Case来看,对于Java应用,还是在启动参数上指定下-Dfile.encoding比较安全一点,避免这种默认的转码依赖系统的配置,很容易踩进坑里。
=============================
题图来源于:http://goo.gl/q2ppqr
欢迎关注微信公众号:hellojavacases
关于此微信号:
分享Java问题排查的Case、Java业界的动态和新技术、Java的一些小知识点Test,以及和大家一起讨论一些Java问题或场景,这里只有Java细节的分享,没有大道理、大架构和大框架。
原文地址:http://www.tuicool.com/articles/7ziMjaz
- jmap的几个操作要慎用
- jmap的几个操作要慎用
- jmap 几个慎用操作
- 几个与JVM相关的JDK工具:jps, jstat, jmap
- 几个与JVM相关的JDK工具:jps, jstat, jmap
- 几个与JVM相关的JDK工具:jps, jstat, jmap
- 慎用DataGrid的CurrentRowIndex操作DataTable
- 慎用DataGrid的CurrentRowIndex操作DataTable
- TreeMap的Comparator, 要慎用
- jmap操作注意点
- 要慎用的五个“简历杀手”句子
- Model,gcc的__sync_synchronize要慎用。
- js 的Object.assign(),要慎用
- GridView的几个操作
- 字符串的几个操作
- 进程的几个操作
- Myeclipse的几个操作
- maven的几个操作
- 如何判断一个直播系统是否使用的是RTMP
- php单元测试
- Windows编程 DirectInput 鼠标和键盘的输入
- VC++包含目录和c/c++ -》附加包含目录的区别
- springMVC handlerInterceptor 处理器拦截器
- jmap的几个操作要慎用
- 《Web全栈工程师的自我修养》摘记一
- 快速入门solr
- solr使用进阶
- ResourceRules.plist: cannot read resources解决方法
- 联合查询
- onSaveInstanceState和onRestoreInstanceState触发的时机
- MP3项目的供电问题
- WPF下使用WebBrowser的一个例子