Linux 常用命令:
top:整机查看
1,load average 如果三个值相加%3 高于0.6 cpu 负载重
2,CPU cpu占用
3,MEM 内存占用
(uptime 直接使用uptime 等于 top 的精简版)
vmstat:查看cpu
vmstat -n 2 3
- procs
-
r: 运行和等待cpu时间片的进程数,原则上1核的cpu运行的队列不要超过2,整个系统的运行队列不能超过总核数的2倍。否则代表系统压力过大
-
等待资源的进程数,比如正在等待磁盘I/O 网络I/O等。
- cpu
-
us: 用户进程消耗cpu时间百分比,us 值高,用户进程消耗的cpu时间多,长期大于百分之50 需优化程序。
-
sy: 内核进程消耗的cpu时间百分比。
- id:cpu 空闲率
- 查看cpu所有进程消耗: mpstat -P ALL 2
- 查看所有对应进程消耗的cpu信息:pidstat -u 1 -p 进程号
free:查看内存占用
- free -m 查看内存占用
- pidstat -p 进程号 -r 2 查看进程的内存占用
df:查看硬盘占用 df -h
iostat:查看硬盘io
iostat -xd 2 3
ifstat:查看网络io
排查线上问题思路:
- 先用top命令找出cpu占比最高的进程
- ps -ef 或者 jps 定位
- 定位到具体线程或者代码
- ps -mp 进程号 -o THREAD,tid,time
- 参数解释:
- -m 显示所有线程
- -p pid 进程使用cpu的时间
- -o 该参数后是用户自定义的展示格式
- 将需要的线程id转换为16进制格式(英文小写)
- jstack 进程id | grep 线程id -A60 (A60 打印前60行)
linux如何查看垃圾回收GC的情况,包括fullGC次数和耗时
jstat -gc PID 毫秒数 刷新次数 jstat -gc 12880 5000 20
S0 — Heap上的 Survivor space 0 区已使用空间的百分比
S1 — Heap上的 Survivor space 1 区已使用空间的百分比
E — Heap上的 Eden space 区已使用空间的百分比
O — Heap上的 Old space 区已使用空间的百分比
P — Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)