Java中的常见排查问题命令
一、线上服务排查,从三个方面负载、cpu、内存 这三个方面着手
1:top 命令是比较常见的,也是最常用的,因为他显示的信息也是最全的


2:针对负载的问题,我们怎么能确定负载当前是高还是低?
一般来说只要负载超过0.7可能就表示当前负载有点高了,需要排查一下,这个是针对单核CPU来说的,如果是多核CPU来说,我们就是CPU核数乘以0.7来计算的。
在top显示的进程信息的时候,我们可能看到当前进程中 7704这个进程 占用CPU最高,而且是我们的Java进程
3:top -Hp 是查看当前进程中的所有的线程情况,同样的可以看到 9046 这个线程占用比较高,那么我们再接着分析这个线程在处理什么逻辑就可以了

4:使用printf命令查看这个线程的16进制

5:最后使用jstack命令查看当前线程正在执行的什么方法,再或者我们直接使用 jmap 来dump内存

6:free来查看内存数据,是保证我们程序能正常运行的关键,这个也是需要我们查看的一个关键指标数据

A: Mem行,顾名思义也就是展示内存的使用情况
a: total:表示物理内存总大小
b: used:已经被使用的物理内存和交换空间
c: free:表示未被分配的内存
d: shared:共享使用的物理内存大小
e: buff/cache buffer 和 cache 使用的物理内存大小
f: available:当前剩余实际可用内存(还可以被应用程序使用的物理内存大小)
7: vmstat命令用于查看CPU使用情况

a: us:用户进程执行时间百分比(如果当前值比较高,说明用户进程消耗高)
b: sy:内核系统进程执行时间百分比(如果系统比较高,那么你可以找运维了)
c: id:空闲时间百分比
d: wa:IO等待时间百分比(如果IO时间长,那说明机器在大量的处理磁盘的读写操作,这个也是关注的重点,可能写日志啊等都有可能)
e: st:虚拟 CPU 等待实际 CPU 的时间的百分比
二、将内存使用情况加载到dump文件中
方法一:
jmap -dump:format=b,file=dumpFileName <pid>
#示例
jmap -dump:format=b,file=/tmp/dump.dat 6219

方法二:Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态
A:安装一下Arthas:$curl -O https://arthas.aliyun.com/arthas-boot.jar

B: 启动Arthas前,必须先要启动所要监控的服务

C:生成dump文件并到指定到相关位置上

三、解析dump文件,可以使用 MAT、Jprofiler等
Java中的常见排查问题命令的更多相关文章
- JAVA中字符串常见操作
String str1="hello,world";String str2="Hello,World"; 1.字符串的比较:例,System.out.print ...
- Java 中最常见的 5 个错误
在编程时,开发者经常会遭遇各式各样莫名错误.近日,Sushil Das 在 Geek On Java上列举了 Java 开发中常见的 5 个错误,与君共「免」. 原文链接:Top 5 Common M ...
- Java学习之道:Java中十个常见的违规编码
近期,我给Java项目做了一次代码清理工作.经过清理后,我发现一组常见的违规代码(指不规范的代码并不表示代码错误)反复出如今代码中.因此,我把常见的这些违规编码总结成一份列表,分享给大家以帮助Java ...
- Java中十个常见的违规编码
摘要:作者Veera Sundar在清理代码工作时发现一些常见的违规编码,因此,Veera Sundar把针对常见的一些违规编码总结成一份列表,以便帮助Java爱好者提高代码的质量和可维护性. 最近, ...
- java中各种常见的异常
一.各种常见的异常 在上一节中程序如果你注意留意,程序抛出的异常是:java.lang.ArithmeticException.这个异常是在lang包中已经定义的.在lang包中还定义了一些我们非常常 ...
- java中不常见的keyword:strictfp,transient
1.strictfp, 即 strict float point (精确浮点). strictfp keyword可应用于类.接口或方法.使用 strictfp keyword声明一个方法时,该方法中 ...
- Java中部分常见语法糖
语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身功能来说没有什么影响,只是为了方便程序员的开发,提高开发效率.说白了,语法糖就是对现有语法的一 ...
- Java中最常见的十道面试题
第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 ...
- java 中的两个常用命令
这两个命令,分别为,javac 和java 实际操作如下图:
- Java注解【二、Java中的常见注解】
JDK自带注解 @Override 重写 @Deprecated 已过期 @Suppvisewarnings 压制警告 Demo: public interface Person { public S ...
随机推荐
- Java中StringBuilder类常用的几个方法
StringBuilder类 StringBuilder 类是 Java 中用于处理可变字符串的类,它提供了在字符串内部进行修改的方法,相比之下,String 类是不可变的,每次对字符串做修改都会创建 ...
- Flask: SSO原理及实现
原文链接:http://www.tuicool.com/articles/ZbyU3e 现在大多数软件公司的业务不再是单条线,而是发展成多元化的产品线.包括多个网站应用.移动APP以及桌面软件,那么 ...
- ctfshow--web11session置空绕过
代码审计 点击查看代码 <?php function replaceSpecialChar($strParam){ $regex = "/(select|from|where|join ...
- ctfshow--web7 sql注入空格过滤
?id=10//union//select//1,database(),3//%23查看库名 查看表名 -1/**/union/**/select/**/1,(select/**/group_conc ...
- 解决Git拉取出现“bad config line 1 in file C:\Users\quber/.gitconfig”的错误
1.问题描述 我们在拉取Git项目的时候,突然出现如下图所示的错误提示: 2.解决办法 定位到.gitconfig文件,然后将其删除掉: 然后在项目文件夹中点击鼠标右键,选择Git Bash Here ...
- Flink mysql-cdc同步主键分布不均匀的mysql表
一.背景 1.遇到问题描述 通过Flink同步mysql到iceberg中,任务一直在运行中,但是在目标表看不到数据.经排查发现job manager一直在做切片工作,切了一小时还没开始同步数据,日志 ...
- Flink程序异常--CommunicationsException: The last packet successfully received from the server was
一.异常截图 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully receive ...
- IDEA 编辑java项目跳过测试
一.Idea配置
- WinForm 进度条显示进度百分比
参考: https://blog.csdn.net/zhuimengshizhe87/article/details/20640157 WinForm中显示进度条百分比有多种方式: 1. 添加 Lab ...
- .NET 使用 DeepSeek R1 开发智能 AI 客户端
前言 最近 DeepSeek 可太火了,在人工智能领域引起了广泛的关注,其强大的自然语言处理能力和智能搜索功能让大家跃跃欲试. 对于 .NET 技术栈的开发来说,一个常见的问题是:能否在 .NET 程 ...