转自:
http://www.myexception.cn/operating-system/415201.html
线上故障问题排查技能记载一
1. pgrep 查询进程的工具
pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了
用法: pgrep 参数选项 程序名
eg: pgrep java #查询出JAVA进程的进程号
常用参数:
-l 列出程序名和进程ID
-o 进程起始的ID
-n 进程终止的ID
2. 汇总某个进程下所有的线程数
方法一 :ls /proc/20967/task/|wc -l : 20967是进程号
方法二 : ps -eLf | grep 20967 |wc -l
ps:该方法对于排查JAVA各种容器(eg:tomcat)由于创建过多线程,导致cpu耗费大量的资源进行上线文切换非常有帮助。
我们可以写一个脚本,当线程数>阀值,则进行jstack dunp
3. TOP命令看线程资源使用情况
第一步:输入TOP命令
第二步: 输入 shift+h ,打开线程模式,查看目前最耗系统资源的线程是哪些
可以再按 1用CPU模式看各个CPU资源的使用情况 按O查看帮助
4 top+jstack
使用top命令看线程资源使用情况后,可以得到这些线程的pid,然后把这些线程号转换成16进制,
jstack -l pid(java进程号) :把java线程快照给dump下来.可以用来排查死锁,以及耗费系统资源线程当前的运行情况
eg: jstack -l pid >jstack_dump.log #将当前JVM线程快照dump到jstack_dump.log文件中
grep jstack_dump.log 16进制号 #这样可以看看当前这些耗费资源的线程的内存情况
5. jstack 打印当前线程堆栈情况
命令格式: jstack [-option] jvm_pid
参数: -l 打印关于锁的堆栈信息(long listing. Prints additional information about locks)
-m 混合打印模式,可打印C++和JAVA的堆栈信息
-h 打印帮助信息
6.查看运行时gc情况命令:
$JAVA_HOME/bin/jstat -gcutil `pgrep java` 1000 10 (后三个参数是PID,扫描间隔时间单位毫秒,扫描次数)
$JAVA_HOME/bin/jstat -gc `pgrep java` 1000 10
7.对于网络问题的定位 :
可以通过netstat命令来查看某个时间段的网络重传率。
通过netstat -l enX -sp tcp
收集发送的TCP包数和retransmit的包数,间隔一定时间过后
再次收集这两个数值,分别相减后相除,可得出在此采样时间内的TCP重传率
相关推荐
Java常⻅线上问题总结以及排查方案
线上问题排查 集合框架 哈希映射 并发哈希映射 数组列表 向量 深入浅出JVM JVM内存模型 性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 ARM与多线程 多线程基础知识 常见关键字 ...
性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 并发与多线程 多线程基础知识 常见关键字 多线程锁机制 线程池知识点 常见的JUC工具类 多线程经典面试题 常用工具集 JVM问题排查...
环境:centos 运行程序: springMVC的web服务 ...Java的堆内存和metaspace等内存排查。使用的工具是:Jconsole、JVisualVM、arthas、strace。 Java堆外内存分析排查。使用的命令:jcmd 进程的原生内存排查。使
很早的时候,我们使用BTrace排查问题,在感叹BTrace的强大之余,也曾好几次将线上系统折腾挂掉。2012年淘宝的聚石写了HouseMD,将 常用的几个Btrace脚本整合在一起形成一个独立风格的应用,但其核心代码用的是Scala...
性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 并发与多线程 线程状态转换与通信机制 线程同步与互斥 线程池知识点 常见的JUC工具类 常用工具集 JVM问题排查工具-JMC IDEA开发神器 ...
性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 并发与多线程 多线程基础知识 常见关键字 多线程锁机制 线程池知识点 常见的JUC工具类 多线程经典面试题 常用工具集 JVM问题排查工具...
上传到 linux线上服务器,执行 chmod -R 777 show-busy-java-threads 执行权限。 ./show-busy-java-threads 查看执行占用cpu偏高的 线程,方便我们排查定位。
三方包,加上日志,重启服务,然后排查问题。但使用这个工具,就可以直接动态加入日志,而不用 修改第三方jar包,也不用重启。 已有功能 1、让系统打印某个exception的堆栈,无论此exception是否已经被吃掉...
线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导出每个线程的占用CPU情况,结合jstack日志,排查到具体的线程类名。 一、首先获得jvm的进程...
性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 :jack-o-lantern:拓展知识 :open_book:Java容器 :memo:多线程 线程状态转换与通信机制 线程同步与互斥 线程池知识点 常见的JUC工具类...