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
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
12. 切割大文件
--verbose 表示输出进度 split -b 500m catalina.out c_ --verbose
split -l 2482 BLM.txt -d -a 4 BLM_
13. 查看磁盘大小
--查看系统磁盘大小
df -h
--进入某个目录之后,可以查看当前文件夹下的大小
du -h