今天一个同学问我:"我排查问题时总是遇到,jmap -heap或-histo 不能用,是不是我们机器配置有啥问题哇? " 分享下这个case的解决过程。

登上同学说的那台不能用的机器,执行jstack,报错:

“get_thread_regs failed for a lwp”

这个问题以前碰到过,但忘了当时是什么原因了,执行其他的jmap -histo什么也卡着不动。

既然jstack没法弄,就pstack看看进程到底什么状况吧,于是pstack [pid]看,发现有一个线程的堆栈信息有点奇怪:

#0 0x00000038e720cd91 in sem_wait ()

对系统函数不太懂,但总觉得sem_wait这个有点奇怪,于是Google之,基本明白了这个是由于进程在等信号,这个时候通常会block住其他所有的线程,于是立刻ps看了下进程的状态,果然进程的状态变成了T,那上面碰到的所有现象都很容易解释了,于是执行:kill -CONT [pid],一切恢复正常。

继续查为什么进程状态会变成T,问问题的同学告诉了下我他在机器上执行过的一些命令,我看到其中一个很熟悉的命令:jmap -heap,看过我之前文章的同学估计会记得我很早以前分享过,在用cms gc的情况下,执行jmap -heap有些时候会导致进程变T,因此强烈建议别执行这个命令,如果想获取内存目前每个区域的使用状况,可通过jstat -gc或jstat -gccapacity来拿到。

到此为止,问题终于搞定,以后碰到jstack/jmap等不能用的时候,可以先看看进程的状态,因此还是那句话,执行任何一句命令都要清楚它带来的影响。

手头还有另外一个case,折腾了一个多星期了还是没太有头绪,case的现象是ygc越来越慢,但可以肯定不是由于cms gc碎片问题造成的,感兴趣的同学可以拿这个case去玩玩,如果能告诉我原因就更好了,:),执行下面的代码,启动参数可以为

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms512m -Xmx512m -Xmn100m -XX:+UseConcMarkSweepGC;

import com.thoughtworks.xstream.XStream;public class XStreamTest {public static void main(String[] args) throws Exception {while(true){XStream xs = new XStream();xs.toString();xs = null;}}
}

应该就可以看到ygc的速度从10+ms一直增长到100+ms之类的...

案例分析:

上篇文章中ygc越来越慢的case的原因解读

深入JVM彻底剖析前面ygc越来越慢的case

一个jstack/jmap等不能用的case相关推荐

  1. JVM分析指令解析-jps/jinfo/jstat/jstack/jmap/jcmd

    本文主要解析JVM分析指令-jps/jinfo/jstat/jstack/jmap jps 英文全名: Java Virtual Machine Process Status Tool 功能: Jav ...

  2. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...

    2019独角兽企业重金招聘Python工程师标准>>> 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...

  3. 一个最简单的登录页面测试case

    具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮. 请针对这个页面设计30个以上的testcase.) 此题的考察目的:面试者是否熟悉各种测试方法,是否有丰富的Web测试经 ...

  4. 现网问题排查实战:Jstat,Jstack,Jmap

    遇到问题怎么办: 查看日志tail -f catalina.out 查看应用进程 ps -ef | grep java 查看CPU情况 查看TCP情况 ping 查看java线程,jstack 查看j ...

  5. mysql触发器中case语句_一个很好的触发器例子(case when)

    CREATE OR REPLACE TRIGGER TR_CGD1 BEFORE UPDATE OR INSERT OR DELETE ON BB_MJ_CGD1_TB FOR EACH ROW DE ...

  6. android UiAutomator写一个QQ小号给大号点赞的case

    最近发现QQ有一个点赞排行榜的东西,想到自己好几个小号,故可以拿来利用一下.试了一下效果不错,顺便学习了一下am启动和关闭应用. public void qqPraise() throws IOExc ...

  7. 深入JVM彻底剖析前面ygc越来越慢的case

    阿里JVM团队的同学帮助从JVM层面继续深入的剖析了下前面那个ygc越来越慢的case,分析文章相当的赞,思路清晰,工具熟练,JVM代码熟练,请看这位同学(阿里JVM团队:寒泉子)写的文章,我转载到这 ...

  8. JDK源码研究Jstack,JMap,threaddump,dumpheap的原理

    JDK最新bug和任务领取:https://bugs.openjdk.java.net/projects/JDK/issues 参加OpenJDK社区:https://bugs.openjdk.jav ...

  9. java 分析jstack日志_望闻问切使用jstack和jmap剖析java进程各种疑难杂症

    最近碰到多起java程序导致服务器cpu使用率100%的情况,下面把排查解决方法记录下来. 其实遇到这种情况,首先要保持冷静的头脑,遇事不乱.然后望闻问切,找到病根,直达病灶.所谓望闻问切就是,首先使 ...

最新文章

  1. SSL_TLS快速扫描器SSLScan常用命令集合大学霸IT达人
  2. MPLS 解决方案有哪些优势?——Vecloud
  3. linux系统找回数据,Linux系统上面误删的数据找回
  4. 计算方法之迭代法求方程根
  5. 移动端REM布局方案
  6. xp系统怎样启动打印机服务器,WinXP系统如何开启Printspooler服务?
  7. Andorid APK反逆向
  8. 北京自动驾驶路测名单更新:蔚来和Pony.ai也获准上路了
  9. 入职五年回顾(十五) 2013年10月
  10. 解决VMware Workstation下面Windows Server 2012R2无法安装Hyper-V
  11. php+psr4和自动加载,php自动加载规范 PSR4 (Thinkphp)
  12. 计算机定时关机命令,定时关机命令,小编教你怎么使用命令行定时关机
  13. 能使用firebug的火狐浏览器下载地址
  14. Linux入门(14)——系统启动修复
  15. 云出阿里见月明(一)
  16. RedisTemplate that could not be found如何解决?
  17. Webpack项目中引入Bootstrap4.x
  18. 西门子1200PLC控制加KPT1200触摸屏,污水处理厂自控项目实例
  19. 【在线图表生成】掌握这些图表,年终报表根本不用愁!
  20. Come Clear - Hilary Duff(希拉瑞.达芙)

热门文章

  1. Svg 嵌入可编辑的div
  2. 一个小型的网页抓取系统的架构设计
  3. Android快速开发框架-ZBLibrary 源码分享
  4. net-ldap for ruby openNebula ldap
  5. Linux环境变量的修改(永久,暂时)
  6. Expression Blend 5 Preview For Silverlight5 RC已发布
  7. windows 下怎样利用NET-SNMP 发送和接收trap
  8. Matlab 2015a 中 pointCloud类相关知识
  9. python提供了方法用于读取文本文件内容_python提供了哪三种方法用于读取文本文件的内容?...
  10. a股历史30年的大盘价_[最新]回顾A股历史上的大井喷行情