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