1. CPU指标分析
# 1.查看系统,平均负载(1分钟 5分钟 15分钟的平均负载)
uptime
# 2. vmstat,属于sysstat包
vmstat 2 1 # 第一个参数:采样时间间隔(单位秒), 第二个参数:采样次数
类别 |
项目 |
含义 |
说明 |
Procs(进程) |
r |
等待执行的任务数 |
展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。 |
|
B |
等待IO的进程数量 |
|
Memory(内存) |
swpd |
正在使用虚拟的内存大小,单位k |
|
|
free |
空闲内存大小 |
|
|
buff |
已用的buff大小,对块设备的读写进行缓冲 |
|
|
cache |
已用的cache大小,文件系统的cache |
|
|
inact |
非活跃内存大小,即被标明可回收的内存,区别于free和active |
具体含义见:概念补充(当使用-a选项时显示) |
|
active |
活跃的内存大小 |
具体含义见:概念补充(当使用-a选项时显示) |
Swap |
si |
每秒从交换区写入内存的大小(单位:kb/s) |
|
|
so |
每秒从内存写到交换区的大小 |
|
IO |
bi |
每秒读取的块数(读磁盘) |
块设备每秒接收的块数量,单位是block,这里的块设备是指系统上所有的磁盘和其他块设备,现在的Linux版本块的大小为1024bytes |
|
bo |
每秒写入的块数(写磁盘) |
块设备每秒发送的块数量,单位是block |
system |
in |
每秒中断数,包括时钟中断 |
这两个值越大,会看到由内核消耗的cpu时间sy会越多
秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目 |
|
cs |
每秒上下文切换数 |
|
CPU(以百分比表示) |
us |
用户进程执行消耗cpu时间(user time) |
us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了 |
|
sy |
系统进程消耗cpu时间(system time) |
sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足 |
|
Id |
空闲时间(包括IO等待时间) |
一般来说 us+sy+id=100 |
|
wa |
等待IO时间 |
wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。 |

# 3. 同属于sysstat包的命令 pidstat
## 查看所有进程的CPU使用情况
pidstat | pidstat -u | pid stat -u -p ALL
## 查看内存的统计
pidstat -r
## 显示各个进程的IO使用情况
pidstat -d
## 显示每个进程的上下文切换情况
pidstat -w -p 2771 # 特定的pid
## 查看进程具体线程使用CPU
top -Hp pid | pidstat -t -p pid
# top -o 可以按照指定的指标排序
top -o %MEM # 按照内存排序
top -o %CPU # 按照CPU排序
## 内舒说明 ##
---------各项指标解析---------------------------------------------------
第一行统计信息区
18:20:27 当前时间
up 25 days, 17:29 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.04, 0.09, 0.13 系统负载,三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
Tasks:进程相关信息
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
Cpu(s):CPU相关信息
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序
%ni:表示用户空间且通过nice调度过的程序的cpu使用率
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
Mem 内存信息
total 物理内存总量
used 使用的物理内存总量
free 空闲内存总量
buffers 用作内核缓存的内存量
Swap 内存信息
total 交换区总量
used 使用的交换区总量
free 空闲交换区总量
cached 缓冲的交换区总量
2. 内存的使用
# 检查内存的命令
free -h # 按照G,来检查内存
vmstat 2 1 # 其中有内存的使用情况
3. 磁盘 I/O
iostat -d -x -m 1 1 # 磁盘使用情况、详情、单位M ; 每隔1秒 采集1次
iostat -c 1 10 # 查看cpu状态
## 命令的参数 ##
-C 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p[磁盘] 显示磁盘和分区的情况
-t 显示终端和CPU的信息
-x 显示详细信息
-V 显示版本信息
4. ifconfig-查看网卡信息
ifconfig 具体网卡名称 |
只显示具体网卡的详细信息 |
ifconfig -a |
显示所有网卡包括没有启动的网卡 |
ifconfig 网卡名称 [up/down] |
表示开启或关闭网卡 |
ifconfig 网络接口 IP地址 [/子网掩码长度] |
临时设置网卡地址 |
ifconfig 网卡名称:数字 地址 |
新建虚拟网卡 |
ifconfig -s |
查看通讯消息 |
route #打印路由表
route -n #以数字形式显示路由信息
route add -net 网段地址 gw IP地址 #添加指定网段的路由记录
route del -net 网段地址 #删除指定网段的路由记录
route add default gw IP地址 #向路由表中添加默认网关记录
route del default gw IP地址 #删除路由表中默认的网关记录