使用 sar 命令查看系统负载

Ubuntu安装

# apt install sysstat

查看平均负荷

示例:

# sar -q 1 10

字段说明:

runq-sz:  运行队列的长度(等待运行的进程数)                                      
plist-sz: 进程列表中进程(processes)和线程(threads)的数量                     
ldavg-1:  最后1分钟的系统平均负载(System load average)                          
ldavg-5:  过去5分钟的系统平均负载                                                 
ldavg-15: 过去15分钟的系统平均负载

查看CPU使用率(常用)

示例:

# sar -u 1 10

字段说明:

%user : 用户模式下消耗的CPU时间的比例;
%nice:  通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例;
%system:系统模式下消耗的CPU时间的比例;
%iowait:CPU等待磁盘I/O而导致空闲状态消耗时间的比例;
%steal: 利用Xen等操作系统虚拟化技术时,等待其他虚拟CPU计算占用的时间比例;
%idle:  CPU没有等待磁盘I/O等的空闲状态消耗的时间比例;

说明:
如果 %iowait 的值过高,表示硬盘存在I/O瓶颈。
如果 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。
如果 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是CPU。

查看内存使用情况

示例:

# sar -r 1 10

字段说明:

kbmemfree:空闲物理内存量;
kbmemused:使用中的物理内存量;
%memused:物理内存量使用率;
kbbuffers:内核中作为缓冲区使用的物理内存容量;
kbcacheed:内核中作为缓存使用的物理内存容量;
kbswpfree:交换区的空闲容量;
kbswpused:使用中的交换区容量;

查看页面交换发生状况

示例:

# sar -W 1 10

查看I/O和传送速率的统计信息(常用)

示例:

# sar -b 1 10

字段说明:

tps:    每秒钟物理设备的 I/O 传输总量                    
rtps:    每秒钟从物理设备读入的数据总量                  
wtps:    每秒钟向物理设备写入的数据总量                  
bread/s: 每秒钟从物理设备读入的数据量,单位为 块/s    
bwrtn/s: 每秒钟向物理设备写入的数据量,单位为 块/s

各个I/O设备情况(常用)

示例:

# sar -d -p 1 1

字段说明:

#DEV 磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接
#tps 每秒I/O的传输总数
#rd_sec/s 每秒读取的扇区的总数
#wr_sec/s 每秒写入的扇区的 总数
#avgrq-sz 平均每次次磁盘I/O操作的数据大小(扇区)
#avgqu-sz 磁盘请求队列的平均长度
#await 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间
#svctm I/O的服务处理时间,即不包括请求队列中的时间
#%util I/O请求占用的CPU百分比,值越高,说明I/O越慢

输出网络设备状态的统计信息

示例:

# sar -n DEV 1 1

字段说明:

IFACE: 网络接口名称
rxpck/s: 每秒收包的数量
txpck/s: 每秒发包的数量
rxkB/s: 每秒收的数据量(kB为单位)
txkB/s: 每秒发的数据量(kB为单位)

sar日志保存(-o)

最后讲一下如何保存sar日志,使用-o选项,我们可以把sar统计信息保存到一个指定的文件,对于保存的日志,我们可以使用-f选项读取:

# sar -n DEV 1 10 -o sar.out
# sar -d 1 10 -f sar.out

相比将结果重定向到一个文件,使用-o选项,可以保存更多的系统资源信息。

注:
默认情况是对过去时间段进行数据统计,一般从最近的0:00开始显示。如果想继续查看一天前的报告,可以用-f选项指定保存在/var/log/sa目录下的日志文件中。
如果想周期性的查看当前数据可以命令后面加上数字参数,如sar –q 1 3 ,表示:1秒1次,共3次。

使用 sar 命令查看系统负载

上一篇:Spark分区器浅析


下一篇:查看class数据模型的操作