Linux Java常用命令

Linux

top 刷新打印当前占比最高进程

-c :显示进程完整路径
-p:后接进程号打印进程信息
-H:线程模式,配合-p使用查看进程下线程占比
top之后

  • 按m : 按内存使用排序
  • 按c : 按CPU使用排序
  • 按f : 调整展示列及列顺序
printf "%x" 线程id 将线程id转换为16进制配合top及jstack 使用查找具体代码

free 打印当前资源占用情况

free -h:以方便阅读的方式展示资源单位

PS 打印进程信息

参数繁多建议使用man ps查看文档
常用的打印格式有两种
ps -ef:包含用户,进程id,CPU使用占比等
ps aux:除了上述还包含内存占比

好用的命令

# 打印内存使用前十的进程
ps axo %mem,pid,euser,cmd | sort -nr | head -10
# 打印cpu使用前十的进程
ps -aeo pcpu,user,pid,cmd | sort -nr | head -10

grep [选项] [参数] 查找符合条件的字符串

通常在一个查询命令后通过"|"连接grep命令过滤数据
-A:查看匹配字符后n行
-B:查看匹配字符前n行
-E: 使用正则过滤

JAVA

jinfo [选项] 进程id

-flags : 查看所有jvm参数设置,例如内存大小等
-sysprops : 查看进程对应应用详情

jstat [选项] 进程id 时间间隔毫秒毫秒 打印次数

-gcutil : 显示垃圾收集信息

jmap [选项] 进程id

-heap : 打印堆统计信息
-dump:导出堆栈数据至文件, jmap -dump:format=b,file=
-histo:live:打印存活对象统计
查看堆内对象的分布 Top 50

jmap -histo:live 30628 | sort -n -r -k2 | head -n 50

jstack [选项] 进程id

打印栈信息
查找进程下某个线程栈信息

jstack  进程id | grep -A 10 线程id

参数

参数 说明
-Xms1G 初始堆内存大小
-Xmx1G 最大堆内存大小
-XX:+PrintGCDetails 打印gc详细日志
-XX:+PrintGCDateStamps 打印GC日期格式时间戳
-Xloggc:完整文件路径 gc日志文件设置
-XX:HeapDumpOnOutOfMemoryError 当内存溢出时生成堆快照
-XX:HeapDumpPath=目录 指定生成堆快照目录

参考资料

https://developer.aliyun.com/article/727625?spm=5176.8068049.0.0.7f0d6d19%20WJXuiS#slide-4
https://g-ghy.github.io/linux-command/c/ps.html

上一篇:Java HashSet


下一篇:研究人员发现超过100个 Tor 节点在监视隐藏服务