jstack排查CPU占用过高之BlockingQueue的陷阱

原创文章, 转载请私信. 订阅号 tastejava 学习加思考, 仔细品味java之美

背景

测试服务器部署一个项目, 供其他部门项目联调使用. 运维给发消息说那台服务器CPU占用过高一直在报警, 虽然不会影响其他虚拟机但是会影响物理机, 需要及时处理一下. 在服务器用top命令看了一下, CPU占用已经高达190%以上, 这台测试服务器是Intel® Xeon® CPU E7-4820 v2 @ 2.00GHz总共2个核心, 也就是说两个核心几乎都100%负载.

什么是jstack

jstack是JDK在%JAVA_HOME%/bin目录下提供的一个用于打印Java进程线程信息的工具, 能帮助定位异常线程具体代码位置.
jstack在排查CPU占用异常, 死锁时作用非常大, 这么一个好用的工具使用起来却非常简单, 具体命令格式为:
jstack 参数 pid
其中pid是要查看线程信息的进程id, 可以通过ps, jps, top等命令获取. 主要的核心在于jstack的参数, 它的参数只有4个.

①-F  to force a thread dump. Use when jstack <pid> does not respond (process is hung)
强制导出线程信息, 当jstack命令没有被java进程响应时使用(java进程被挂起状态)
②-m  to print both java and native frames (mixed mode) 打印java和native所有方法的线程信息
③-l  long listing. Prints additional information about locks 打印额外的锁信息
④-h or -help to print this help message 打印帮助信息

为什么说jstack使用简单呢, 4个参数中, -h打印帮助

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值