首页 > 系统相关 >Linux sar命令详解:分析系统性能

Linux sar命令详解:分析系统性能

时间:2022-11-14 13:57:02浏览次数:57  
标签:06 0.00 AM 详解 sec Linux sar CPU

sar 命令很强大,是分析系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、运行队列、磁盘读写(I/O)、分区(交换区)、内存、CPU 中断和网络等性能数据。

sar 命令的基本格式如下:

[root@localhost ~]# sar [options] [-o filename] interval [count]

此命令格式中,各个参数的含义如下:
  • -o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;
  • interval:表示采样间隔时间,该参数必须手动设置;
  • count:表示采样次数,是可选参数,其默认值为 1;
  • options:为命令行选项,由于 sar 命令提供的选项很多,这里不再一一介绍,仅列举出常用的一些选项及对应的功能,如表 1 所示。

表 1 sar 命令行选项及功能
sar命令选项功能
-A 显示系统所有资源设备(CPU、内存、磁盘)的运行状况。
-u 显示系统所有 CPU 在采样时间内的负载状态。
-P 显示当前系统中指定 CPU 的使用情况。
-d 显示系统所有硬盘设备在采样时间内的使用状态。
-r 显示系统内存在采样时间内的使用情况。
-b 显示缓冲区在采样时间内的使用情况。
-v 显示 inode 节点、文件和其他内核表的统计信息。
-n 显示网络运行状态,此选项后可跟 DEV(显示网络接口信息)、EDEV(显示网络错误的统计数据)、SOCK(显示套接字信息)和 FULL(等同于使用 DEV、EDEV和SOCK)等,有关更多的选项,可通过执行 man sar 命令查看。
-q 显示运行列表中的进程数、进程大小、系统平均负载等。
-R 显示进程在采样时的活动情况。
-y 显示终端设备在采样时间的活动情况。
-w 显示系统交换活动在采样时间内的状态。

有关 sar 命令更多可用的选项及功能,可通过执行 man sar 命令查看。


【例 1】
如果想要查看系统 CPU 的整理负载状况,每 3 秒统计一次,统计 5 次,可以执行如下命令:
[root@localhost ~]# sar -u 3 5
Linux 2.6.32-431.el6.x86_64 (localhost)     10/25/2019     _x86_64_    (1 CPU)

06:18:23 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
06:18:26 AM     all     12.11      0.00      2.77      3.11      0.00     82.01
06:18:29 AM     all      6.55      0.00      2.07      0.00      0.00     91.38
06:18:32 AM     all      6.60      0.00      2.08      0.00      0.00     91.32
06:18:35 AM     all     10.21      0.00      1.76      0.00      0.00     88.03
06:18:38 AM     all      8.71      0.00      1.74      0.00      0.00     89.55
Average:        all      8.83      0.00      2.09      0.63      0.00     88.46
此输出结果中,各个列表项的含义分别如下:
  • %user:用于表示用户模式下消耗的 CPU 时间的比例;
  • %nice:通过 nice 改变了进程调度优先级的进程,在用户模式下消耗的 CPU 时间的比例;
  • %system:系统模式下消耗的 CPU 时间的比例;
  • %iowait:CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例;
  • %steal:利用 Xen 等操作系统虚拟化技术,等待其它虚拟 CPU 计算占用的时间比例;
  • %idle:CPU 空闲时间比例。

【例 2】
如果想要查看系统磁盘的读写性能,可执行如下命令:
[root@localhost ~]# sar -d 3 5
Linux 2.6.32-431.el6.x86_64 (localhost)     10/25/2019     _x86_64_    (1 CPU)

06:36:52 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
06:36:55 AM    dev8-0      3.38      0.00    502.26    148.44      0.08     24.11      4.56      1.54

06:36:55 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
06:36:58 AM    dev8-0      1.49      0.00     29.85     20.00      0.00      1.75      0.75      0.11

06:36:58 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
06:37:01 AM    dev8-0     68.26      6.96  53982.61    790.93      3.22     47.23      3.54     24.17

06:37:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
06:37:04 AM    dev8-0    111.69   3961.29    154.84     36.85      1.05      9.42      3.44     38.43

06:37:04 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
06:37:07 AM    dev8-0      1.67    136.00      2.67     83.20      0.01      6.20      6.00      1.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:       dev8-0     34.45    781.10   9601.22    301.36      0.78     22.74      3.50     12.07
此输出结果中,各个列表头的含义如下:
  • tps:每秒从物理磁盘 I/O 的次数。注意,多个逻辑请求会被合并为一个 I/O 磁盘请求,一次传输的大小是不确定的;
  • rd_sec/s:每秒读扇区的次数;
  • wr_sec/s:每秒写扇区的次数;
  • avgrq-sz:平均每次设备 I/O 操作的数据大小(扇区);
  • avgqu-sz:磁盘请求队列的平均长度;
  • await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1 秒=1000 毫秒);
  • svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间;
  • %util:I/O 请求占 CPU 的百分比,比率越大,说明越饱和。

除此之外,如果想要查看系统内存使用情况,可以执行sar -r 5 3命令;如果要想查看网络运行状态,可执行sar -n DEV 5 3命令,等等。有关其它参数的用法,这里不再给出具体实例,有兴趣的读者可自行测试,观察运行结果。 文档来源:http://c.biancheng.net/view/6212.html

关注公众号「站长严长生」,在手机上阅读所有教程,随时随地都能学习。本公众号由站长亲自运营,长期更新,坚持原创,专注于分享创业故事+学习历程+工作记录+生活日常+编程资料。

公众号二维码

标签:06,0.00,AM,详解,sec,Linux,sar,CPU
From: https://www.cnblogs.com/shigp/p/16888806.html

相关文章

  • Python 自动化中三种等待时间的详解
    自动化测试,是交由机器来执行的一种测试手段,用于提升测试效率,意味着每一次的自动化测试都需要有非常高的成功率,才可以达到提升效率的作用。在自动化测试中,其实就是通过代码......
  • Linux配置node环境
    1.下载安装包https://nodejs.org/en/download/releases/官网下载需要的版本,我这里下的16版本mac本通过电脑自带远程传输sftp进行本地上传安装包,window需要自行百度一下......
  • C++ 位运算Bitwise operations详解 ----- 重要的解题技巧
    什么是位运算:利用位运算符号进行二进制位计算的操作即为位运算维基百科:......
  • Linux系统出现cannot create temp file for here-document: Read-only file system解
    打开终端输入命令比如mkdir、cd等等,会出现如下提示cannotcreatetempfileforhere-document:Read-onlyfilesystem解决办法如下:mount-oremount,rw/原文:https:......
  • 第一章 linux-shell命令入门
      本人目前正在学习linux驱动开发,利用我想记录我Linux的学习过程,并分享出来,为大家提供一些经验,同时加强我对知识的总结能力,希望我的博客能为大家提供帮助。废话不多说,我......
  • Linux shell脚本执行后出现语法错误: 未预期的文件结尾
    Windows环境下编写了一个shell脚本,上传到Linux环境中执行,Linuxshell脚本执行后出现语法错误:未预期的文件结尾。出现了此错误提示,进行了如下的检查:1、检查Shell脚本的......
  • 关于memset函数的详解
    一般用于数值和结构体的初始化这里仅仅说明对数组的初始化函数原型void*memset(void*s,intch,unsignedn);作用将s所指向的某一块内存中的每个字节的内容全部......
  • 手写弹出框代码详解
    1.代码<!DOCTYPEhtml><htmllang="zh-CN"><head><metahttp-equiv="content-Type"charset="UTF-8"><metahttp-equiv="x-ua-compatible"content="IE=edge"><......
  • linux之架构图和八台服务器
    (1)(2) ......
  • 巨蟒python全栈开发linux之cento9
    1.docker入门学习查看机器中已经启动的所有的进程.ps-ef 2.docker常用命令学习3.docker学习34.dockerfile与镜像5.docker私有仓库6.rabbitmq介绍与安装7.rabbitmq的队......