java问题排查可能用到的一些命令

1. jmap查询jvm内存使用情况

-heap :打印jvm heap的情况
-histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live : 同上,但是只答应存活对象的情况
-permstat: 打印permanent generation heap情况
命令使用:
jmap -heap 3409
查询对象占用情况
jmap -histo 3409

有的时候对象太多,需要输出到文本里筛选:
jmap -histo 3409 > a.txt
jmap -histo输出的数据中:
[C is a char[]
[S is a short[]
[I is a int[]
[B is a byte[]
[[I is a int[][]
linux命令 查询最后的几行
tail -n 1000 a.txt

linux命令 查询前几行
head -n 30 a.txt

2. 查询java的pid

ps -ef | grep java

3. 查询某pid的占用情况

top -p 202020
时间: 2024-10-12 04:01:19

java问题排查可能用到的一些命令的相关文章

hellojava上 java问题排查经验笔记

前些天发现:http://hellojava.info/这个站点,文章基本阿里对遇到java问题排查分析总结,内容丰富. 线上故障总结其实是最有价值的,好的总结就是一个系统演进历史,是团队难得的积累沉淀. 虽然公众出来的内容不多,但很值得一看,花了不少时间把整个完整每篇文章挨个看一遍,嗯,习惯轮不错的资源. 顺手整理了笔记: 1. Hashmap 并发情况下未加锁导致OOM      嗯,死循环很常见,OOM也会有,序列化时 HashMap.writeObject 一直执行生成巨大的数组. 2.

Java死锁排查和Java CPU 100% 排查的步骤整理

工欲善其事,必先利其器 简介 本篇整理两个排查问题的简单技巧,一个是java死锁排查,这个一般在面试的时会问到,如果没有写多线程的话,实际中遇到的机会不多:第二个是java cpu 100%排查,这个实际的开发中,线的应用出现这个问题可能性比较大,所以这里简单总结介绍一下,对自己学习知识的一个整理,提高自己的解决问题能力. 一.Java死锁排查 通过标题我们就要思考三个问题: 什么是死锁? 为什么会出现死锁? 怎么排查代码中出现了死锁? 作为技术人员(工程师),在面对问题的时候,可能需要的能力是

Java死锁排查和Java CPU 100% 排查的步骤整理(转)

工欲善其事,必先利其器 简介 本篇整理两个排查问题的简单技巧,一个是java死锁排查,这个一般在面试的时会问到,如果没有写多线程的话,实际中遇到的机会不多:第二个是java cpu 100%排查,这个实际的开发中,线的应用出现这个问题可能性比较大,所以这里简单总结介绍一下,对自己学习知识的一个整理,提高自己的解决问题能力. 一.Java死锁排查 通过标题我们就要思考三个问题: 什么是死锁? 为什么会出现死锁? 怎么排查代码中出现了死锁? 作为技术人员(工程师),在面对问题的时候,可能需要的能力是

JAVA实现远程SSH连接linux并执行命令

package com.codeconch.ssh; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException;

Java设计模式(九)责任链模式 命令模式

(十七)责任链模式 责任链模式的目的是通过给予多个对象处理请求的机会,已解除请求发送者与接受者之间的耦合关系.面对对象的开发力求对象之前保持松散耦合,确保对象各自的责任最小化,这样的设计可以使得系统更加容易修改,同时降低产生缺陷的风险. public class ChainTest { public static void main(String[] args) { String pass1="123456"; String pass2="123456"; Stri

Java问题排查工具箱[转载]

转载自:http://hellojava.info/?p=517 作者:阿里毕玄 问题排查除了最重要的解决思路和逻辑推导能力外,工具也是不可缺少的一部分,一个好用的工具可以事半功倍,甚至在某些情况下会因为没有相应的工具而压根就没法继续进行下去,这篇文章就来讲讲在排查Java问题时通常要用到的一些工具(ps:这种文章值得收藏,看一遍其实很容易忘). 日志相关工具 查问题的时候会非常依赖日志,因此看日志的相关工具非常重要,通常的话掌握好tail,find,fgrep,awk这几个常用工具的方法就可以

Java死锁排查

文章来源:微信公众号:猿天地 1. 死锁的概念: 是Java多线程情况下,两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,若无外力作用,它们都讲无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在相互等待的进程成为死锁进程. 2. 出现死锁的条件: (1)必须是两个或者两个以上进程(线程) (2)必须有竞争资源 3. 如果排查代码中出现了死锁? 死锁代码: public class JStackDemo { public static void m

java 线程排查问题流程

1. 通过top命令查看当前系统CPU使用情况,定位CPU使用率超过100%的进程ID:2. 通过ps aux | grep PID命令进一步确定具体的线程信息:3. 通过ps -mp pid -o THREAD,tid,time命令显示线程信息列表,然后找到耗时的线程ID:4. 将需要的线程ID转换为16进制格式:printf "%x\n" tid5. 最后找到线程堆栈信息:jstack pid |grep tid ,其中tid是上面转换后的16进制的线程ID

java/android 设计模式学习笔记(16)---命令模式

这篇博客我们来介绍一下命令模式(Command Pattern),它是行为型设计模式之一.命令模式相对于其他的设计模式更为灵活多变,我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击关机命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管,用户只需点击系统的关机按钮即可完成如上一系列的命令.而我们的命令模式其实也与之相同,将一系列的方法调用封装,用户只需调用一个方法执行,那