Linux服务器性能问题和诊断思路
总结
类型 | 命令 |
---|---|
整机 | top |
CPU | vmstat |
内存 | free |
CPU | vmstat |
硬盘 | df |
磁盘IO | iostat |
网络IO | ifstat |
整机
具体命令 | 说明 |
---|---|
top | 系统整体性能 |
CPU
具体命令 | 说明 |
---|---|
vmstat -n 2 3 | 查看CPU信息 每2秒打印1次 打印3次 |
mpstat -p ALL 2 3 | 查看所有CPU核信息 每2秒打印1次 打印3次 |
pidstat -u 1 -p PID | 每个进程使用的CPU信息 |
内存
具体命令 | 说明 |
---|---|
free -m | 以M单位查看内存信息 |
pidstat -p PID -r 采样间隔秒数 | 查看内存额外信息 |
硬盘
具体命令 | 说明 |
---|---|
df -h | 查看磁盘剩余空间数 |
磁盘IO
具体命令 | 说明 |
---|---|
iostat -xdk 2 3 | 磁盘IO性能评估 |
pidstat -p PID -d 采样间隔秒数 | 查看磁盘额外信息 |
网络IO
具体命令 | 说明 |
---|---|
ifstat | 网络IO |
案例
生产环境CPU占用过高, 谈谈你的分析思路和定位?
- 先用
top
命令找出CPU占比最高的 - 进一步定位:
ps -ef
或者jps
进一步定位,找出具体的程序
ps -ef |grep java | grep -v grep
jps -l
- 定位到具体线程或者代码
jstack PID