`
sharp-fcc
  • 浏览: 110357 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux java 线上问题排查

阅读更多

转自: 

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线上故障排查方案(2).pdf

    本文档围绕Java线上故障排查提供了详尽的方案和知识点,覆盖了从问题定位到解决方案的多个方面。 首先,了解Java线上常见问题的分类是非常重要的。在生产环境中,问题可大致分为系统异常和业务异常两大类。系统异常...

    线上问题排查

    在 Linux 系统中,为了高效地排查线上 Java 应用的问题,首先需要明确 Java Development Kit (JDK) 的安装位置。这可以通过以下两种方式实现: 1. **通过 `java-version` 命令验证 JDK 是否已经安装**: - 执行 `...

    Java线上故障排查方案.pdf

    ### Java线上故障排查方案 #### 一、引言 在软件开发领域,处理生产环境中的问题是一项必备技能。生产环境中可能会遇到多种复杂的情况,比如代码bug、硬件故障、网络问题等,这些都可能导致应用程序无法正常运行。...

    线上问题排查工具和手段

    针对Java应用服务器,排查问题时常用的工具还包括jps、jstack、jmap和jstat等。jps命令可以列出当前系统的Java进程,而jstack则用于打印Java进程的线程堆栈信息。jmap命令可以帮助我们查看heap内存的使用情况,并且...

    线上问题调查常用命令

    在IT运维与开发工作中,线上问题的排查与解决是维护系统稳定性和用户体验的关键环节。本篇文章将基于提供的文件信息,深入解析线上问题调查中常用的Linux性能检测工具及JVM性能相关命令,并提供详细的解释与应用场景...

    【Java面试+Java学习指南】一部分大部分Java招聘所需要掌握的核心知识

    线上问题排查 集合框架 哈希映射 并发哈希映射 数组列表 向量 深入浅出JVM JVM内存模型 性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 ARM与多线程 多线程基础知识 常见关键字 ...

    Java学习指南,涵盖大部分Java程序员所需要掌握的核心知识

    性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 并发与多线程 多线程基础知识 常见关键字 多线程锁机制 线程池知识点 常见的JUC工具类 多线程经典面试题 常用工具集 JVM问题排查...

    Linux.docx

    本文将详细讲解Linux中的常见命令、命令分类以及如何利用这些命令来查看系统资源,如内存和CPU状态,同时也会涉及到Java线上问题的排查方法。 1. **Linux命令分类及用途**: - **文件和目录操作**:如`ls`用于列出...

    java排查一个线上死循环cpu暴涨的过程分析

    总结,Java线上环境遇到CPU暴涨的问题,排查过程主要包括监控工具的使用、线程状态分析、堆栈跟踪和代码审查。理解这些步骤对于Java开发者来说至关重要,能够快速定位问题并进行修复,保证服务的稳定运行。在实际...

    教你找出 运行java项目,使cpu 100%,如何排查出是哪个jar包的哪个线程导致的

    如果你对`jstack`不熟悉,可以参考CSDN博主的文章,如`jstack_justry_deng的博客-CSDN博客_jstack.url`和`【线上问题排查】CPU100%和内存100%排查_码农BookSea的博客-CSDN博客.url`,这些文章提供了更多关于如何解读...

    Java-JVM性能监控与故障处理工具详细介绍以及使用案例

    使用JVM命令和一查看这个JVM参数,帮助我们排查、解决问题。 1 JDK的命令行工具 JDK的命令行工具大多数是对JDK/lib/tools.jar类库的一层薄包装而已,它们的主要功能代码是在tools类库中实现的。Linux下的这些工具有...

    Linux:Java应用随着持续运行一段时间后,内存可用率逐渐减少的乌龙事件排查过程

    环境:centos 运行程序: springMVC的web服务 ...Java的堆内存和metaspace等内存排查。使用的工具是:Jconsole、JVisualVM、arthas、strace。 Java堆外内存分析排查。使用的命令:jcmd 进程的原生内存排查。使

    [线上问题] Nginx与Tomcat、Client之间请求的长连接配置不一致问题分析解决

    3. **Tomcat配置**:Apache Tomcat是一个开源的Servlet容器,用于实现Java Servlet和JavaServer Pages技术。在Tomcat中配置长连接通常涉及到修改连接器配置,如HTTP/1.1连接器中设置`protocol`属性为`org.apache....

    Java异常诊断greys-anatomy.zip

    很早的时候,我们使用BTrace排查问题,在感叹BTrace的强大之余,也曾好几次将线上系统折腾挂掉。2012年淘宝的聚石写了HouseMD,将 常用的几个Btrace脚本整合在一起形成一个独立风格的应用,但其核心代码用的是Scala...

    java版飞机大战源码-java-club:Java程序员所需要掌握的核心知识都在这里。。。。alittledaily~

    性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 并发与多线程 线程状态转换与通信机制 线程同步与互斥 线程池知识点 常见的JUC工具类 常用工具集 JVM问题排查工具-JMC IDEA开发神器 ...

    JavaFamily:【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 并发与多线程 多线程基础知识 常见关键字 多线程锁机制 线程池知识点 常见的JUC工具类 多线程经典面试题 常用工具集 JVM问题排查工具...

    show-busy-java-threads

    上传到 linux线上服务器,执行 chmod -R 777 show-busy-java-threads 执行权限。 ./show-busy-java-threads 查看执行占用cpu偏高的 线程,方便我们排查定位。

    Java开发工程师的工作职责.docx

    Java 开发工程师需要参与需求分析及评审,日常开发沟通,负责功能详细设计,接口详细定义,编码实现,单元测试及性能压测,保证代码质量,遵照开发规范,代码持续优化,配合协助线上问题排查及解决。 六、技术栈 ...

    java attach 超屌工具

    Java Attach是一个强大的工具,它允许开发者在生产环境中无需重启服务就能进行问题排查和修复,极大地提高了运维效率。本文将深入探讨Java Attach的工作原理、应用场景以及如何使用。 **一、Java Attach简介** Java...

    java动态日志注入工具anylog.zip

     三方包,加上日志,重启服务,然后排查问题。但使用这个工具,就可以直接动态加入日志,而不用  修改第三方jar包,也不用重启。 已有功能  1、让系统打印某个exception的堆栈,无论此exception是否已经被吃掉...

Global site tag (gtag.js) - Google Analytics