感谢原作者 http://blog.chinaunix.net/uid-10449864-id-3463151.html

问题描述:
生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。

问题分析:
1,程序属于CPU密集型,和开发沟通过,排除此类情况。
2,程序代码有问题,出现死循环,可能性极大。

问题解决:
1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出。
2,记得原来通过strace跟踪的方法解决了一台PHP服务器CPU占用高的问题,但是通过这种方法无效,经过google搜索,发现可以通过下面的方法进行解决,那就尝试下吧。

解决过程:
1,根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。

2,找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
[root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn

显示结果如下:
USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
root     10.5  19    - -         -      -  3626 00:12:48
root     10.1  19    - -         -      -  3593 00:12:16

p司机注:(2013-01-29)
一次排查过程中,使用该方法无法查询到子线程的TID,出问题线程的TID值为“-”。
马上就脑残了,后面依靠增加服务器解决.

找到了耗时最高的线程3626,占用CPU时间有12分钟了!

将需要的线程ID转换为16进制格式:
[root@localhost logs]# printf "%x\n" 3626
e18

最后打印线程的堆栈信息:
[root@localhost logs]# jstack 2633 |grep e18 -A 30

将输出的信息发给开发部进行确认,这样就能找出有问题的代码。
通过最近几天的监控,CPU已经安静下来了。

转载于:https://blog.51cto.com/potaski/1112667

生产环境下JAVA进程高CPU占用故障排查相关推荐

  1. idea占用cpu过高_生产环境服务器变慢、CPU占用过高,诊断思路和性能评估谈谈?...

    上篇: https://zhuanlan.zhihu.com/p/166162037​zhuanlan.zhihu.com 一.生产环境服务器变慢,诊断思路和性能评估 1.在Linxu准备数据 (1) ...

  2. Dapper--Google生产环境下的分布式跟踪系统

    Dapper--Google生产环境下的分布式跟踪系统 概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发 ...

  3. java cpu 内存使用情况_java高cpu占用和高内存占用问题排查 (转)

    高cpu占用 1.top命令:Linux命令.可以查看实时的CPU使用情况.也可以查看最近一段时间的CPU使用情况. 2.PS命令:Linux命令.强大的进程状态监控命令.可以查看进程以及进程中线程的 ...

  4. Java生产环境下性能监控与调优详解 大纲 学习感悟

    Java生产环境下性能监控与调优详解 生产环境发生了内存溢出如何处理? 生产环境应该给服务器分配多少内存合适? 如何对垃圾收集器的性能进行调优? 4.生产环境CPU负载飙高该如何处理? 5.生产环境应 ...

  5. 线上Java 高CPU占用、高内存占用排查思路

    一.前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警.本文主要针对系统 ...

  6. Java 分析 程序CPU 占用高的原因

    Java 分析 程序CPU 占用高的原因 背景:最近突然发现线上测程序长时间CPU 占用过高.内存确没有什么消耗.这种情况下可以排除死锁(一般死锁之后,如果不是自旋锁的话,CPU 占用都不会很高),也 ...

  7. JAVA生产环境验证_Java生产环境下性能监控与调优详解

    本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优:通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出.cpu负载飙高等问题:学会线上代码调试,Tomcat.Nginx, ...

  8. Java 线上cpu占用过高分析

    转载于:https://blog.csdn.net/ch999999999999999999/article/details/113151519 感谢作者:ch999999999999999999 J ...

  9. Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控

    Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控 2-1 JVM的参数类型 标准参数 x参数 XX参数 2-2 查看JVM运行时参数 2-3 jstat查看JVM统计信息 2- ...

最新文章

  1. 卡方检验 python
  2. hashmap 不释放空间_刁难问题,为什么HashMap默认容量为16加载因子为0.75
  3. centos 对已有卷扩容_centos7下对原有磁盘分区进行在线扩容
  4. ArcGIS 10.7如何获取矢量多边形所有折点的坐标(平面坐标和经纬度坐标)?
  5. pythonrequests证书_python requests证书问题解决
  6. java8 stringbuilder_为什么 Java 8 中不需要 StringBuilder 拼接字符串
  7. python产生随机数并排序_中小学python教学案例:随机数按升序排列 输出
  8. caxa自动保存的文件在哪里_怎样删除CAXA的临时文件
  9. Ubuntu20.04设置WiFi热点
  10. 七夕情人节送什么礼物给女朋友?音质好的蓝牙耳机推荐
  11. H264解码器源码(Android 1.6 版)
  12. app架构图怎么做,价值2000元的学习资源泄露,实战篇
  13. 用excel解蓝桥杯(2018年第九届蓝桥杯A组)
  14. java爬取新浪微博带有“展开全文”的完整微博文本
  15. 在职研究生计算机专业院校,计算机专业在职研究生报名有哪些院校可以选择?...
  16. UML--顺序图绘制
  17. c语言五子棋如何添加计时,五子棋教程:计时
  18. Office在线预览及PDF在线预览的实现方式
  19. 2022年吃瓜事件拆解,打造爆款,让你拥有顶级营销思维!
  20. ClinChoice昆翎完成对莱必宜的并购;西湖欧米完成Pre-A轮数亿元融资 | 医药健闻...

热门文章

  1. 弹出查看图片_报表工具如何实现“点击查看原图”
  2. 一篇复习一下Spring和SpringMVC基本概念
  3. mysql游标示例mysql游标简易教程
  4. VS2012/13本地发布网站详细步骤(可带数据库)
  5. PHP网站工作流程图,在网站绘制工作流程图的教程分享(打工人必看)
  6. 2022年如何学习自动化测试?这篇文章告诉你
  7. Flutter UI自动化测试技术方案选型与探索
  8. android游戏boss坐标,热血江湖手游boss刷新点坐标 boss刷新时间 _图文攻略_高分攻略_百度攻略...
  9. android ui动画效果怎么做,AndroidUI 布局动画-为列表添加布局动画效果
  10. java locationuitool_Java JavaUI.getLibraryJavadocLocation方法代码示例