java排查故障
java排查故障
top -Hp 31327
#或top -p 31327,再按shift+h,-H则是线程开关,传入该参数的话,top界面会显示所有单独的线程列表)
##31327为java进程,拿到异常的线程id后,便可以将该进程的线程栈用下面的jstack命令全部输出:
##jstack 查看java 堆栈信息
jstack 31327 |more
"http-bio-18080-exec-11" daemon prio=10 tid=0x00007f50b028e800 nid=0x5757 runnable [0x00007f50936eb000]
"http-bio-18080-exec-9" daemon prio=10 tid=0x00007f50b02a5000 nid=0x7a9d runnable [0x00007f512d6b5000]
"http-bio-18080-exec-8" daemon prio=10 tid=0x00007f50b02a3800 nid=0x7a9b runnable [0x00007f512d9e3000]
"http-bio-18080-exec-7" daemon prio=10 tid=0x00007f50b0011000 nid=0x7a99 runnable [0x00007f512dc88000]
"http-bio-18080-exec-5" daemon
————————————————
##可以看到这些线程都一直挂在程序的某一行,多半是这里发生了死锁
jps -vm | grep 31327 |more
##可以查看java进程的参数或者日志地址等.如果没有显示参数的话,可以cd到/proc/15195/cwd目录,该目录便是进程的运行目录
jstat -gc 15195
##获得当前进程的gc状态 ,注:用jstat -gcutil $PID $INTERVAL $TIMES查询可能会更直接
##如果是PU(PermGen Usage)占用非常高,约为95.7%,是因为Perm代过高,且CMS GC无法回收掉Perm区内容,而导致频繁GC。
##CMS GC与普通的STW Full GC不同,不会暂停应用,但是会导致CPU使用率非常高。
##解决方法有两种:1)提高Perm区大小,-XX:PermSize -XX:MaxPermSize,2)关掉Perm区收集机制,取消-XX:+CMSClassUnloadingEnabled
————————————————
######## 线程状态: #################
Deadlock – 死锁
Runnable – 执行中
Suspended – 暂停
Blocked – 阻塞
Parked – 停止
Waiting on condition – 等待资源
Waiting on monitor entry – 等待获取监视器
Object.wait() 或 TIMED_WAITING – 对象等待中
java排查故障的更多相关文章
- Java进程故障排查
故障分析 # 导致系统不可用情况(频率较大): 1)代码中某个位置读取数据量较大,导致系统内存耗尽,进而出现Full GC次数过多,系统缓慢: 2)代码中有比较消耗CPU的操作,导致CPU过高,系统运 ...
- Java进程故障排查思路及步骤
故障场景 Java进程出现问题,通常表现出如下现象: Web应用响应时间长/超时,甚至不响应 CPU使用率极高/低,频繁出现Full GC,甚至OutOfMemoryError 响应时间长.超时,甚至 ...
- java程序故障排查脚本之——CPU占用高
root@ubuntu-B85M-D3H:~/tmp# cat java_Analy.sh #!/bin/bash T=`ps -mp $1 -o THREAD,tid,time|sort -k 2 ...
- JVM命令-java服务器故障排查
一.top(Linux命令) 执行top命令: (查看进程15477的详细情况,下文用到) 系统信息(前五行): 第1行:Top 任务队列信息(系统运行状态及平均负载),与uptime命令结果相 ...
- 十个最好的Java性能故障排除工具
1.jconsole 是随着JDK 1.5而推出的.这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机.它能够同时监测本地和远程的JVMs.详情可查看:jconsole工具介 ...
- 用strace排查故障的5种简单方法(每日一译)
原文链接:5 simple ways to troubleshoot using Strace 我很意外大部分人都不知道如何使用strace.strace一直是我的首选debug工具,因为它非常的有效 ...
- 线上java排查
http://www.oschina.net/question/560995_137855?sort=default&p=3#answers http://www.blogjava.net/h ...
- Dell服务器通过IDRAC9收集TSR日志排查故障
登陆IDRAC9 WEB管理界面,在菜单栏< 维护>下选择 在联网的情况下推荐完成SupportAssist的注册,根据提示安装ISM并进行信息登记.如暂不注册,则点击取消继续. 进入S ...
- Java程序线上故障排查
目录 一.Linux 内存和cpu 网络 磁盘 /proc文件系统 二.JVM Java堆和垃圾收集器 gc日志分析 JVMTI介绍 Attach机制 java自带工具 三.三方工具 jprofile ...
随机推荐
- linux下的.ssh文件夹路径等
1.linux下的.ssh文件夹在~下,直接cd ~/.ssh即可 2.tp经过gd类处理过的水印图片格式为png 3.前端扒下别人家的网站如果自己本地打开有出现相同的代码段则有可能是js动态添加的, ...
- SpringBoot 集成Swagger2自动生成文档和导出成静态文件
目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagg ...
- python django mysql配置
1 django默认支持sqlite,mysql, oracle,postgresql数据库. <1> sqlite django默认使用sqlite的数据库,默认自带sqlite ...
- RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别
RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别 先贴一段代码 public void logon(Http ...
- CS Requirements and Resources
有感于国内令人发指的CS教育,决定以自学为主. 路线会按照计算机科学与技术的技能树,主要学习四大的比较完整的课程,video没时间看,但reading会仔细看.lab会认真做,对于一些比较有意义.代码 ...
- Fourier Transform
为了在统一框架里分析周期信号与非周期信号,可以给周期信号也建立傅里叶变换. 有两种方法求周期信号的傅里叶变换: **1. 利用傅里叶级数进行构造 ** 对于周期信号\(x(t)\),其傅里叶级数展开式 ...
- POJ 2955 区间DP必看的括号匹配问题,经典例题
Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14226 Accepted: 7476 Description ...
- Codeforces 1291 Round #616 (Div. 2) C. Mind Control(超级详细)
C. Mind Control You and your n−1 friends have found an array of integers a1,a2,-,an. You have decide ...
- Taurus.MVC 2.3.2 :WebAPI 文档集成测试功能及附加<%# JS执行功能语法 %>
前言: 前些天有网友提到了那个界面丑陋的SwaggerUI,让我想起了多年前实现的WebAPI文档未完成的功能点,于是,动手了,便有了本文的内容. 开源地址:https://github.com/cy ...
- JAVA设计模式之单例(singleton)
一.饿汉式 /** * 饿汉式 */public class Singleton01 { private static final Singleton01 instance = new Singlet ...