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

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

-heap :打印jvm heap的情况
-histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live : 同上,但是只答应存活对象的情况
-permstat: 打印permanent generation heap情况
命令使用:
jmap -heap
查询对象占用情况
jmap -histo 有的时候对象太多,需要输出到文本里筛选:
jmap -histo > 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 a.txt linux命令 查询前几行
head -n a.txt

2. 查询java的pid

ps -ef | grep java

3. 查询某pid的占用情况

top -p 

4. htop各项指标的含义

PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称

5. 查询服务器当前内存使用情况

free -m

参数:
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

6. 根据进程号pid查询执行文件目录

lsof -p PID

7. 查询某个端口的进程pid

lsof -i: 端口号

8. 查询某个服务的进程pid

jps -lv | grep "service name"

8. 查询某个服务使用的编码格式

 jinfo 1732 | grep "file.encoding"

 1732是进程的pid

9. 遍历目录所有文件,展示大小

ll -h

10. 解压*.gz文件

gunzip file.gz

11. 查询某pid的线程数

ps -Lf Pid | wc -l

  

上一篇:Libscore – 收集 JavaScript 库的使用数据


下一篇:前端极易被误导的css选择器权重计算及css内联样式的妙用技巧