持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情
Linux
man [命令] 打印命令详细文档
打印命令对应详细文档例如 man top;打开文档后h键查看操作的帮助文档,q退出文档
top 刷新打印当前占比最高进程
- -c :显示进程完整路径
- -p:后接进程号打印进程信息
- -H:线程模式,配合-p使用查看进程下线程占比
top之后
- M键 : 按内存使用排序
- C键 : 按CPU使用排序
- F键 : 调整展示列及列顺序
- K键 :向指定PID进程发送消息,不写入具体消息则为关闭进程
- Ctrl+Z: 退出查看窗口
通常操作过程:
- 使用top查看异常进程
- 使用top -Hp 进程号 查看线程信息,
- 使用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
打印JVM基础信息
- -flags : 查看所有jvm参数设置,例如内存大小等
- -sysprops : 查看进程对应应用详情
jstat [选项] 进程id 时间间隔毫秒毫秒 打印次数
打印JVM统计信息
- -gcutil : 显示垃圾收集信息
jmap [选项] 进程id
打印JVM内存堆栈信息
- -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=目录 | 指定生成堆快照目录 |