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比较安全一点,避免这种默认的转码依赖系统的配置,很容易踩进坑里。

jmap的几个操作要慎用的更多相关文章

  1. golang 字符串与整数, 布尔转换 strconv

    strconv 是golang对于字符串和基本数据类型之间的转换字符串转整数testStr := "1000" testInt, err := strconv.Atoi(testS ...

  2. 【JPA 级联保存/级联删除】@OneToMany (双向) 一对多【转】

    [http://blog.sina.com.cn/s/blog_625d79410101dbdd.html]   看过前两篇帮助文档 [JPA] @OneToOne 单向 和 [JPA]@OneToO ...

  3. <JVM下篇:性能监控与调优篇>01-概述篇-02-JVM监控及诊断工具-命令行篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  4. Spark Shuffle原理、Shuffle操作问题解决和参数调优

    摘要: 1 shuffle原理 1.1 mapreduce的shuffle原理 1.1.1 map task端操作 1.1.2 reduce task端操作 1.2 spark现在的SortShuff ...

  5. Servlet与多线程与IO操作

    1.JVM内存模型相关概念 2.Java多线程并发深入理解 3.Servlet.设计模式.SpringMVC深入理解 4.Java基础遗漏点补充 数据库连接池:JDBC connection pool ...

  6. C#中DataTable排序、检索、合并等操作实例

    转载引用至:http://www.jb51.net/article/49222.htm     一.排序1.获取DataTable的默认视图2.对视图设置排序表达式3.用排序后的视图导出的新DataT ...

  7. java中的IO操作总结

    一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...

  8. VirtualMachine所支持的操作

    在JDK中com.sun.tools.attach.VirtualMachine提供了一些从外部进程attach到jvm上,并执行一些操作的功能.VirtualMachine的子类HotSpotVir ...

  9. Java之IO操作总结

    所谓IO,也就是Input与Output的缩写.在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节 对于文件内容的操作主要分为两大类 分别是: 字符流 字节流 ...

随机推荐

  1. CVE2016-8863libupnp缓冲区溢出漏洞原理分析及Poc

    1.libupnp问题分析: (1)问题简述: 根据客户给出的报告,通过设备安装的libupnp软件版本来判断,存在缓冲区溢出漏洞:CVE-2016-8863. (2)漏洞原理分析: 该漏洞发生在up ...

  2. SQL 2008登录的域账户与数据库服务器不再同一个域的 处理方法

    try this: Use RUNAS to set your Windows Auth domain for database connections runas /user:domain\user ...

  3. go递归函数如何传递数组切片slice

    数组切片slice这个东西看起来很美好,真正用起来会发现有诸多的不爽. 第一,数组.数组切片混淆不清,使用方式完全一样,有时候一些特性又完全不一样,搞不清原理很容易误使用. 第二,数组切片的appen ...

  4. 树莓派 Zero W+温度传感器DS18B20

    树莓派 Zero W+温度传感器DS18B20 作者:陈拓chentuo@ms.xab.ac.cn 2018.05.28/2018.06.01 0.  概述 用树莓派 Zero W读取DS18B20温 ...

  5. java的反射应用

    class B{ public static void main(String[] arg){ Class c_a = Class.forName(packageName + "." ...

  6. Date.parse和new Date(str)的兼容性问题

    Date.parse和new Date(str)的兼容性问题 Date '2015-05-04'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的. 正确的用法是'2015/05 ...

  7. 【校招面试 之 剑指offer】第9-1题 用两个栈实现一个队列

    #include<iostream> #include<stack> using namespace std; template <typename T> void ...

  8. day6:vcp考试

    Q101. Refer to the Exhibit.Which tab shows the Hardware Acceleration support status?A. DevicesB. Pro ...

  9. HTML实例

    HTML内容繁多,不易记忆,故将此网址 作为查阅复习的工具http://www.w3school.com.cn/example/html_examples.asp

  10. 10-能不能组成m

    /*                                找数达人 时间限制:1000 ms  |  内存限制:65535 KB      难度:2 描述 小明最近做出了一道题:如何在一组数 ...