1. 整机Command:top
命令结果解析:
- load average三个数表示一分钟、五分钟、十五分钟的平均负载值。若:
(三个数相加 / 3) * 100% > 60%
则代表系统的负担压力重- 不停按
1
还会打印出每个CPU的利用率uptime
是top
的精简版:
2. CPU Command:vmstat
命令结果解析:
vmstat -n 2 3
每2秒采样一次,共计采样3次- 使用vmstat主要是查看proc和cpu两个参数
命令详解:
CPU命令扩展:
mpstat -P ALL 2
查看所有cpu核的信息(每两秒采用一次,打印出所有cpu)
ide值表示CPU的空闲率pidstat -u 1 -p [进程PID]
每个进程使用CPU的用量分解
3. 内存Command:free
命令结果解析:
free
查看系统的内存free -m
会详细显示,free -g
会四舍五入,所以尽量使用free -m
- 扩展命令:
pidstat -p [PID] -r [采用次数]
查看某个进程对内存的消耗
4. 硬盘Command:df
命令结果解析:
- 常用
df
和df -h
查看硬盘剩余空间数df -h
显示的数据更易读
5. 磁盘I/O Command:iostat
命令结果解析:
iostat -xdk 2 3
磁盘I/O性能评估,重要参数为util
- 扩展命令:
pidstat -d [采样间隔] -p [PID]
查看额外
6. 网络I/O Command:ifstat
命令结果解析:
- 使用
ifstat
或ifstat 1
查看网络I/O,常用ifstat 1
7. 查看进程 Command:ps -ef | grep
命令结果解析:
- 常用
ps -ef
或ps -aux
来查看所有运行进程的详细信息。或ps -l
。- 经常配合管命令
grep
来具体查看某个进程的信息,ps -ef | grep [进程名/PID]
8. CPU负载过高进程定位Demo(Java)
过程解析:
写一个demo运行,模拟cpu高占用
先用top命令找出CPU占比最高的
ps-ef
或者jps
进一步定位,得知是一个怎么样的一个后台程序给我们惹事
- 3. 定位到具体的线程或者代码
使用ps -mp [PID] -o THREAD,tid,time
查看具体线程
将需要的线程转换为16进制格式,原为十进制(英文小写格式)
jstack [进程ID] | grep [tid (16进制线程ID小写英文)] -A60