Linux基础命令---sar显示系统活动信息

简介: sar      sar指令用来收集、报告、保存系统的活动信息。sar命令将操作系统中选定的累积活动计数器的内容写入标准输出。会计系统根据参数“interval”、“count”中的值,写入以秒为单位的指定间隔的指定次数的信息。
sar
      sar指令用来收集、报告、保存系统的活动信息。sar命令将操作系统中选定的累积活动计数器的内容写入标准输出。会计系统根据参数“interval”、“count”中的值,写入以秒为单位的指定间隔的指定次数的信息。如果参数“interval”设置为零,sar命令将显示自系统启动以来的平均统计信息。如果指定“count”参数而未指定“Interval“参数,则会连续生成报告。除了显示在屏幕上之外,还可以将收集到的数据保存在“-o”标志指定的文件中。如果省略了文件名,sar将使用标准的系统活动日数据文件“/var/log/sa/sadd”文件,其中dd参数指示当前日期。默认情况下,内核中的所有可用数据都保存在数据文件中。
      sar命令提取并写入以前保存在文件中的标准输出记录。该文件可以是“-f”标志指定的文件,也可以是默认的标准系统活动日数据文件。
如果没有“-P”标志,sar命令将报告系统范围内(所有处理器中的全局统计)统计数据,这些统计数据是以百分比表示的值的平均值计算的,而以其他方式表示的和。如果给定“-P”标志,sar命令报告与指定处理器相关的活动。如果给出了“-P ALL”,sar命令会报告每个处理器的统计信息和所有处理器之间的全局统计信息。
      可以使用标志选择有关特定系统活动的信息。没有指定任何标志,只选择CPU活动。指定-A标志等同于指定“-bBdqrRSvwWy -I SUM -I XALL -n ALL -u ALL -P ALL”。
      sar命令的默认版本(CPU利用率报告)可能是用户开始系统活动调查的首批工具之一,因为它监视主要的系统资源。如果CPU利用率接近100%(使用“+ nice + system”),则采样的工作负载是CPU限制的。
      如果需要多个示例和多个报告,则可以方便地为sar命令指定一个输出文件。将sar命令作为后台进程运行。这方面的语法是:
            sar -o datafile interval count >/dev/null 2>&1 &
      所有数据以二进制形式捕获并保存到文件(数据文件)中。然后,可以使用sar命令使用-f选项选择性地显示数据。设置间隔和计数参数,以选择间隔秒间隔的计数记录。如果未设置Count参数,则将选择保存在文件中的所有记录。以这种方式收集数据对于描述一段时间内的系统使用情况和确定峰值使用时间非常有用。
      注意:sar命令只报告本地活动。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、SUSE、openSUSE。

1、语法
      sar  [选项]

2、选项列表
      -A
            显示所有报告
      -b
            显示IO状态以及传输速率,有一下值可以显示:
            tps,每秒发送给物理设备的传输总数。传输是对物理设备的I/O请求。多个逻辑请求可以组合成对设备的单个I/O请求。转移是不确定的大小。
            rtps,每秒向物理设备发出的读取请求总数。
            wtps,每秒向物理设备发出的写入请求总数。
            bread/s,每秒从设备读取的数据总量(以块为单位),块大小512字节。
            bwrtn/s,每秒写入到设备的数据总量(以块为单位)。
      -B
            显示页信息:
            pgpgin/s,每秒从磁盘呼入系统的总字节数。注意:对于旧内核(2.2.x),这个值是每秒许多块(而不是千字节)。
            pgpgout/s,系统每秒呼出到磁盘的千字节总数。注意:对于旧内核(2.2.x),这个值是每秒若干块(而不是千字节)。
            fault/s,系统每秒产生的页面错误数(主要小错误)。这不是生成I/O的页面错误的计数,因为一些页面错误可以在没有I/O的情况下被解决。
            majflt/s,系统每秒发生的主要故障数,这些故障需要从磁盘加载内存页。
            pgfree/s,系统每秒放置在空闲列表上的页数
            pgscank/s,每秒被kswapd守护进程扫描的页数。
            pgscand/s,每秒直接扫描的页数。
            pgsteal/s,每秒从缓存(分页缓存和交换缓存)中回收的页数,以满足内存需求。
            %vmeff,这是一个页面回收效率的度量(pgsteal / pgscan)。如果它接近100%,那么几乎所有从非活动列表尾部下来的页面都会被捕获。      如果它太低(例如,不足30%),那么虚拟内存就会有一些困难。如果在时间间隔内没有扫描页面,则此字段将显示为零。
      -C
            读取文件的时候,显示备注信息
      -d
            显示块设备信息,有以下值可以显示:
            tps,指示每秒发送给设备的传输次数。多个逻辑请求可以组合成对设备的单个I/O请求。转移是不确定的大小。
            rd_sec/s,从设备读取的扇区数。扇区的大小为512字节。
            wr_sec/s,写入设备的扇区数。扇区的大小为512字节。
            avgrq-sz,向设备发出的请求的平均大小(按扇区)。
            avgqu-sz,向设备发出的请求的平均队列长度。
            await,向要服务的设备发出I/O请求的平均时间(毫秒)。这包括请求在队列中花费的时间和服务它们的时间。
            svctm,向设备发出的I/O请求的平均服务时间(毫秒)。
            %util,向设备发出I/O请求的CPU时间百分比(设备的带宽利用率)。当此值接近100%时,设备饱和发生。
      -e [hh:mm:ss]
            设置报告的结束时间
      -f
            从文件获取信息
      -h
            显示简短的帮助信息
      -i
            在秒内选择数据记录,以尽可能接近由Interval参数指定的数字。
      -I { int [,...] | SUM | ALL | XALL }
            报告给定中断的统计信息。int是中断号。在命令行中指定多个INT参数将查看多个独立的中断。SUM关键字指示将显示每秒接收的中断总数。ALL关键字表示将报告来自前16个中断的统计信息,而XALL关键字表示将报告来自所有中断的统计信息,包括潜在的APIC中断源。注意,中断统计数据依赖于要收集的南共体选项“-S INT”。
      -j { ID | LABEL | PATH | UUID | ... }
            显示持久设备名称。结合选项-d使用此选项。选项ID、LABEL等。指定持久性名称的类型。这些选项不受限制,唯一的先决条件是“/dev/disk”中存在具有所需持久名称的目录。如果没有为设备找到持久名称,则设备名称将被很好地打印出来(请参阅下面的选项-p)。
      --legacy
            启用读取旧的“/var/log/sa/sadd”数据文件
      -m
            报告电源管理信息
      -n
            报告网络信息,可能的关键字有DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6,UDP6。
      -o
            保存内容
      -P
            报告cpu使用情况
      -p
            漂亮的打印设备名称。结合选项-d使用此选项。默认情况下,名称被打印为dev m-n,其中m和n是设备的主要和次要设备号。
      -q
            报告队列长度和负载平均值:
            runq-sz,运行队列长度(等待运行时的任务数)
            plist-sz,任务列表中的任务数
            ldavg-1,最后一分钟的系统负载平均值。负载平均值计算为可运行或正在运行的任务的平均数量(R状态),以及在指定间隔内处于不间断睡眠状态(D状态)的任务数。
            ldavg-5,在过去5分钟系统平均负荷。
            ldavg-15,在过去15分钟系统平均负荷。
      -r
            报告内存使用情况:
            kbmemfree,可用内存的数量(千字节)。
            kbmemused,使用内存的数量(以千字节为单位)。这没有考虑到内核本身使用的内存。
            %memused,使用内存的百分比。
            kbbuffers,内核用作缓冲区的内存数量(以千字节为单位)。
            kbcached,内核缓存数据的内存量(以千字节为单位)
            kbcommit,当前工作负载所需的以千字节为单位的内存量。这是对需要多少内存/交换以保证内存永不耗尽的估计。
            %commit,当前工作负载所需内存占内存总量(RAM交换)的百分比。这个数字可能大于100%,因为内核通常会过多提交内存。
      -R
            报告内存统计。显示下列值
            frmpg/s,系统每秒释放的内存页数。负值表示系统分配的若干页。注意,根据机器架构,页面的大小为4kB或8kB。
            bufpg/s,系统每秒用作缓冲区的附加内存页数。负值意味着系统用作缓冲区的页面减少。
            campg/s,系统每秒缓存的其他内存页数。负值意味着缓存中的页面减少。
            -s [hh:mm:ss] 
            设置数据起始时间
      -S
            报告交换空间利用率统计数据:
            kbswpfree,自由交换空间的数量(以千字节为单位)
            kbswpused,使用的交换空间数量(以千字节为单位)
            %swpused,Percentage of used swap space.
            kbswpcad,缓存交换内存的数量(以千字节为单位)。这是一旦被交换掉的内存,就会被交换回来,但仍然在交换区(如果需要内存,就不需要再交换了,因为它已经在交换区了)。这节省了I/O)。
            %swpcad,缓存交换内存相对于使用交换空间数量的百分比
      -t
            从每日数据文件读取数据时,指示sar应在数据文件创建者的原始区域设置时间内显示时间戳。如果没有此选项,sar命令将在用户的区域设置时间中显示时间戳。
      -u  [ ALL ]
            报告CPU利用率。ALL关键字指示应该显示所有CPU字段。报告可以显示以下字段:
            %user,在用户级别(应用程序)执行时出现的CPU利用率百分比。请注意,此字段包括运行虚拟处理器所花费的时间。
            %usr,在用户级别(应用程序)执行时出现的CPU利用率百分比。请注意,此字段不包括运行虚拟处理器所花费的时间。
            %nice,在具有良好优先级的用户级别执行时出现的cpu利用率百分比
            %system,在系统级(内核)执行时出现的CPU利用率百分比。请注意,此字段包括用于服务硬件和软件中断的时间。
            %sys,在系统级(内核)执行时出现的CPU利用率百分比。请注意,此字段不包括用于服务硬件或软件中断的时间。
            %iowait,CPU或CPU空闲的时间百分比,在此期间,系统有未执行的磁盘I/O请求。
            %steal,在虚拟机管理程序为另一个虚拟处理器服务时,虚拟CPU或CPU在非自愿等待中花费的时间百分比
            %irq,CPU或CPU用于服务硬件中断的时间百分比。
            %soft,CPU或CPU用于服务软件中断的时间百分比。
            %guest,CPU或CPU用于运行虚拟处理器的时间百分比
            %idle,CPU或CPU空闲且系统没有未执行磁盘I/O请求的时间百分比。
      -v
            报告inode、file和其他内核表的状态。显示下列值:
            dentunusd,目录缓存中未使用的缓存条目数。
            file-nr,系统使用的文件句柄数。
            inode-nr,系统使用的inode处理程序的数量。
            pty-nr,系统使用的伪终端数量。
      -V
            打印命令版本信息,并且退出
      -w
            报告任务创建和切换情况
      -W
            报告交换空间情况:
            pswpin/s,系统每秒输入的交换页总数
            pswpout/s,系统每秒生成的交换页总数
      -y
            报告tty设备情况,显示以下值:
            rcvin/s,当前串行线路每秒接收中断的次数。在TTY列中给出了序列号。
            xmtin/s,当前串行线路每秒发送中断的次数。
            framerr/s,当前串行线路每秒帧错误数。
            prtyerr/s,当前串行线路每秒奇偶校验错误数。。
            brk/s,当前串行线路每秒中断次数。
            ovrun/s,当前串行线路每秒溢出错误数

3、文件
      /var/log/sa/sadd,指示每日数据文件,其中“dd”参数是表示月份中的某一天的数字。
      /proc,包含具有系统统计信息的各种文件。

4、例子代码
      sar -u 2 5
      每2秒报告CPU利用率。显示5行。
      sar -I 14 -o int14.file 2 10
      每2秒报告IRQ 14的统计数据。显示10行。数据存储在一个名为“int14.file”的文件中。
      sar -r -n DEV -f /var/log/sa/sa16
      显示存储在每日数据文件“sa16”中的内存和网络统计数据
      sar –A
      显示当前每日数据文件中保存的所有统计信息。

5、实例
1)显示cpu使用情况 
      [root@localhost ntop-4.0.1]#  sar –P ALL               //显示所有cpu使用情况
      Linux 2.6.32-431.el6.i686 (localhost.localdomain)  2018年10月10日  _i686_ (1 CPU)
      09时00分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
      09时10分01秒     all      0.16      0.00      0.07      0.02      0.00     99.75
      09时10分01秒       0      0.16      0.00      0.07      0.02      0.00     99.75

      09时10分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
      09时20分01秒     all      0.13      0.00      0.09      0.03      0.00     99.75
      09时20分01秒       0      0.13      0.00    
      …
2)显示网络使用情况 
      [root@localhost ntop-4.0.1]#  sar -n SOCK -s 15:00:00 -e 16:20:00                 //显示网路中socket使用状态,设置的显示的起始和结束时间
      Linux 2.6.32-431.el6.i686 (localhost.localdomain)  2018年08月10日  _i686_ (1 CPU)

      15时00分01秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
      15时10分01秒       707         5         6         0         0         0
      15时20分01秒       723         5         6         0         0         0
      平均时间:       715         5         6         0         0         0

      15时24分21秒       LINUX RESTART

      15时30分01秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
      15时40分01秒       702         5         6         0         0         0
      15时50分01秒       698         5         6         0         0         0
      16时00分01秒       698         5         6         0         0         0
      16时10分01秒       717         5         6         0         0         0
      平均时间:       704         5         6         0         0         0
[root@localhost ntop-4.0.1]# 
相关文章
|
4天前
|
Ubuntu 安全 Linux
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
36 1
|
2天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0
|
5天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
11 0
|
6天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
25 6
Linux 中的 Nslookup 命令怎么使用?
|
7天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
7天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
Linux Perl
LINUX获取当前用户及信息的命令
LINUX获取当前用户及信息的命令
113 0
|
14天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
15天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇