使用sar检查Linux系统性能

SAR命令可以在系统性能的各个方面提供详细的系统指标。您可以根据需要查询或将其设置为设备以提供每日报告。

环法自行车赛/全球数字广播连接
尖锐完成/ Maxger / Getty Images

SAR是一个系统实用程序,为我们提供了许多方法来检查Linux系统上的性能。它提供了有关系统性能的所有方面的详细信息,包括系统负载,CPU使用率,内存使用,分页,交换,磁盘使用,设备加载,网络活动等。

名称“sar”代表“系统活动报告”,它可以显示当前性能,提供基于存储在系统/var/log/sa(或/var/log/sysstat)文件夹中的日志文件的报告,或者设置为自动生成每日报告。它是sysstat的一部分——系统性能监视工具的集合。

检查如果SAR.在您的系统上可用,运行如下命令:

$ which SAR /usr/bin/sar

如果没有,您需要使用像“yum安装sysstat”或“apt安装sysstat”的命令安装它。然后,您将能够运行这样的命令,这些命令从系统中收集性能细节:

$ sar -d 5 2 Linux 5.11.15-300.fc34。x86_64(蜻蜓)06/16/2021 _x86_64_ CPU(2)下午12:38:42 DEV tps岩石层/ s wkB / s第一劝业/ s areq-sz aqu-sz等待% util 12:38:47 sda下午0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00下午12:38:47 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00下午12:38:47深发展0.40 0.00 6.40 0.00 16.00 0.01 8.50 0.34下午12:38:47署0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:38:47点zram0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00下午12:38:47 DEV tps岩石层/ s wkB / s第一劝业/ s areq-sz aqu-sz等待% util 12:38:52 sda下午2.40 0.00 388.80 0.00 162.00 0.01 2.00 0.34下午12:38:52 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00下午12:38:52深发展1.40 0.00 21.60 0.00 15.43 0.01 2.00 0.28下午12:38:52署0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:38:52点zram0平均:0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 DEV tps岩石层/ s wkB / s第一劝业/ s areq-sz aqu-sz等待% util平均:sda平均:1.20 0.00 194.40 0.00 162.00 0.00 2.00 0.17 sr0平均:0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00深发展平均:0.90 0.00 14.00 0.00 15.56 0.01 3.44 0.31署平均:0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00Zram0, 0.00, 0.00, 0.00, 0.00

请注意,此报告显示了设备使用情况和活动sda/dev/sdb.它包括两个5秒的报告加上平均值。如果你钻研SAR.在手册页中,您将找到每个数据列的解释。在上面的例子中,包含在上面例子中的字段包括:

Dev设备TPS每秒每秒千字节数的千字节数读取的每秒WKB / S千字节数为每秒写入设备的千字节数DKB / S千字节数为每秒丢弃的千字节,每秒丢弃每秒ISQ-SZ平均值I / O Requests的大小(千字节)AQU-SZ AQU-SZ的平均队列长度的请求等待平均时间(以毫秒为单位),用于I / O.请求%I / O向设备发出的经过时间的uter%util百分比

下一个命令通过3个5秒报告和平均值提取内存使用数据。

$ sar -r 5 3 linux 5.11.15-300.fc34.x86_64(dragonfly)06/16/2021 _x86_64_(2 CPU)PM KBMEMFREE KBavail KBMemused%Memused KBBuffers KBCached KBCommit%Commit Kbactive Kbinact Kbdirifile 12:下午9点59 3089584 5231848 471144 7.75 35944 2257060 2126524 17.50 645168 2021508 48下午12点10分04秒3089584 5231848 471140 7.75 35944 2257060 2126524 17.50 645168 2021552 48下午12时10分09秒3089584 5231848 471140 7.75 35944 2257060 2126524 17.50 645168 2021560 144平均:3089584 5231848 471141 7.75 35944 2257060 2126524 17.50 645168 2021540 80

使用一个宽的终端窗口将使细节更容易查看。

看目前的性能统计数据

SAR.上面显示的命令都使用实时数据。换句话说,SAR.按照指示和显示数据收集数据。没有涉及日志文件。较旧的统计数据将无法使用。

默认显示为CPU。所以,如果你没有指定一个选项,你会看到如下内容:

$ SAR 10 2 Linux 5.11.15-300.fc34.x86_64(蜻蜓)06/16/2021 _x86_64_(2 CPU)10:17:50 AM CPU%用户%NEUST%SYSTEM%iWAIT%IDLE IDLE 10:18:00 AM所有0.00 0.10 0.15 0.05 0.00 99.75 10:18:10 AM所有0.05 0.00 0.20 0.00 0.00 99.75平均:所有0.05 0.11 0.03 0.00 99.75

要将类似这样的命令输出保存到文件中,你可以这样运行命令:

$ SAR -o sarfile 6 2

请记住,创建的数据文件(本例中是sarfile)将不是是一个文本文件,您可以显示与猫或更多的命令。但是,您可以使用SAR.包含文件名作为参数的命令:

$ sar -f sarfile Linux 5.11.15-300.fc34。x86_64 (dragonfly) 06/15/2021 _x86_64 (2 CPU) 10:15:52 AM CPU %user %nice %system %iowait %steal %idle 10:15:58 AM all 0.17 0.00 0.17 0.25 0.00 99.42 10:16:04 AM all 0.08 0.00 0.33 0.00 0.00 99.58平均:all 0.12 0.00 0.25 0.12 0.00 99.50

看着以前的性能统计数据

你可以轻松设置SAR.在系统上自动运行,将收集到的统计数据存储在每日文件中,生成每日报告,并在给定的天数(默认为28天)后删除最老的文件。这允许您查看最近日期的性能,并将您所看到的与当前统计数据进行比较。这通常可以帮助你回答“今天有什么不同?”——这通常是问题出现时你可能会问自己的第一个问题。

一旦您使用的数据收集SAR.,你可以用SAR.命令如此命令从SA14数据文件中提取数据:

$ sar -f /var/log/sa/sa14 -b Linux 5.11.15-300.fc34x86_64 (dragonfly) 06/14/2021 _x86_64 (2 CPU) 02:54:22 PM LINUX RESTART (2 CPU) 03:00:19 PM tps rps wtps dtps bread/s bwrtn/s bdscd/s 03:10:19 PM 1.02 0.02 1.00 0.00 0.00 69.05 0.00 03:20:19 PM 1.05 0.02 1.03 0.00 75.03 0.00 03:30:19 PM 0.99 0.02 0.97 0.00 0.28 74.35 0.00 . x86_64 (2 CPU) 02:54:22 PM tps rps wtps dtps bread/s bwrtn/s bdscd/s

为此,您需要首先启用SAR.自动运行并在数据文件中保存性能统计数据。根据使用的Linux发行版的不同,执行此操作的过程略有不同。

Fedora

在Fedora上,您可以使用这样的命令来启用SAR.收集每日数据:

# systemctl启动sysstat。systemctl启用sysstat。Service # systemctl status sysstat.service

在这之后,SAR.将存储其数据文件/ var / log / sa目录。在设置它后几天后,您可以期待看到这样的东西:

$ ls -l总计1096-rw-r  -  r--。1根根103292 6月14日23:50 SA14 <==数据文件-RW-R  -  R--。1根root 273544 6月15日23:50 SA15 -RW-R  -  R--。1根root 156240 6月16日13:30 SA16 -RW-R  -  R--。1根root 158740 6月15日00:07 SAR14 <==每日报告-RW-R  -  R--。1根根420712 6月16日00:07 SAR15

文件名中的数字(例如,14)表示某月的几号。三个“sa”文件(sa14、sa15和sa16)是这三天中的每一天的数据文件,sar14和sar15文件是前两天的性能报告。在Fedora上,您可以使用以下命令来确定数据将被保存多少天:

/etc/sysconfig/sysstat HISTORY=28

Ubuntu.

启用SAR.在Ubuntu和相关系统上,编辑/etc/default/sysstat将ENABLED="false"修改为ENABLED="true"。

启用=“true”

日志文件将存储在/var/log/sysstat

查看每日报告

查看任何每日SAR.报告(例如sar15),您可以简单地使用如下命令更多的或者.这些文件是简单的文本文件。

一天结束后(午夜后不久),全天报告将被命名为“sar15”。像“sa14”这样的文件用于收集原始数据,而像“sar14”这样的文件是包含每日报表的文本文件。它们包含了相当多的性能细节。

$ wc -l sar15 4701 sar15x86_64(蜻蜓)2021-06-15 _x86_64_ CPU (2) 00:00:19 usr % sys百分比% iowait CPU % %偷% irq %软%客人% gnice %闲置00:10:19所有0.07 0.00 0.12 0.05 0.00 0.01 0.01 0.00 0.00 99.74 00:10:19 0 0.03 0.01 0.05 0.02 0.00 0.00 0.01 0.00 0.00 99.88 00:10:19 1 0.10 0.00 0.20 0.08 0.00 0.01 0.01 0.00 0.07 0.00 - 0.10 0.04 - 0.00 0.00 - 99.60 00:20:191 0.12 0.00 0.18 0.07 0.00 0.01 0.01 0.00 0.00 99.60 00:30:19所有0.06 0.00 0.10 0.06 0.00 0.01 0.01 0.00 0.00 0.00 99.76…

要从日常数据文件(不是报表文件)中的数据中提取数据,您将使用类似-f选项使用这样的命令指定要使用的数据文件:

$ sar -f sa15 |head -22 linux 5.11.15-300.fc34.x86_64(蜻蜓)06/15/2021 _x86_64_(2 CPU)12:00:19 AM CPU%用户%NEUP%SYSTEM%iowait%窃款%空闲12:10:19AM所有0.07 0.00 0.05 0.05 0.05 0.05 0.05 0.0 0 0.07 0.07 0.00 0.10 0.11 0.04 0.00 99.77 12:30:19 AM AM所有0.06 0.12 0.06 0.00 99.76 12:40:19 AM所有0.06 0.12 0.05 0.05 0.00 0 0.05 0.00 0 0.05:19 AM所有0.07 0.11 0.11 0.05 0.00 0 0.01:00:19 AM所有0.07 0.07 0.07 0.05 0.05 0.19 99.74 01:19 AM 99.74 01:10:19 AM所有0.07 0.11 0.05 0.00 0 0.01 0.00 0.00 99.77 01:20:19 AM所有0.10 0.00 0.00 0.12 0.04 0.00 99.53 01:30:19 AM所有0.07 0.00 0.11 0.04 0.00 99.77 01:19 AM所有0.07 0.00 0.11 0.03 0.00 99.78 01:50:19 AM 0. 0. 0.00 0.12 0.03 0.00 99.78 02:00:19 AM所有0.06 0.00 0.03 0.0099.78 02:10:19 AM所有0.06 0.00 0.13 0. 0.00 99.77 02:20:19 AM 02:20:19 AM 0. 0.00 0.12 0.04 0.00 99.78 02:30:19 AM所有0.06 0.12 0. 0.00 99.79 02:40:19 AM所有0.07 0.12 0.190.03 0.00 99.79 02:50:19 AM所有0.07 0.94 0.05 0.00 0.00 0.00 0.00 98.76 03:00:19 AM所有0.18 0.00 0.12 0.03 0.00 99.67 03:10:19 AM所有0。06 0.00 0.12 0.04 0.00 99.78

在下一个示例中,除了文件名之外,还可以指定开始(-s)和结束(-e)时间。

$ sar-s 11:00 -e 12:00 -f sa15 linux 5.11.15-300.fc34.x86_64(蜻蜓)06/15/2021 _x86_64_(2 CPU)11:00:19 AM CPU%用户%nice%系统%iowait%窃取%闲置11:10:19 AM所有0. 0.00 0.17 0.00 0.05 0.00 99.73 11:10:19 AM 99.73 11:10:19 AM 99.73 11:30:19 AM AM 0.05 0.17 0.05 0.00 99.73 11:40:19 AM所有0.18 0.17 0.17 0.05 0.05 0.00 0.05 0.0 0 0.06 0.02 0.02 0.05 0.05 0.00 99.69平均:所有0.08 0.00 0.17 0.00 0.00 99.70

选项,选项和选项

您可以使用SAR.显示相关的统计信息:

  • 寻呼(SAR -B)
  • I / O和转移率(SAR -B)
  • 块设备(SAR -D)
  • 目前安装的文件系统(SAR -F)
  • 巨大的页面利用率(SAR -H)
  • 中断(SAR -I)
  • 电源管理(sar -m)
  • 网络统计(SAR -N)
  • 运行队列和加载平均值(SAR -Q)
  • 内存用法(SAR -R)
  • 交换利用率(sar -S)
  • CPU利用率(SAR -U)
  • inode、文件和其他内核表的状态(sar -v)
  • 交换(sar - w)
  • 上下文切换(SAR -W)
  • TTY设备活动(sar -y)

事实上,要得到所有这些选项的列表以及它们所代表的内容,最简单的方法就是提问SAR.求助。请注意,对于某些选项,如网络,您可以选择您希望查看哪种活动(例如,TCP或套接字)。

使用方法:sar [options] [ []]主要选项和报告(报告名称在方括号之间):-B分页统计[A_PAGE] -B I/O和传输速率统计[A_IO] -d块设备统计[A_DISK] -F [MOUNT]文件系统统计[A_FS] -H大页面利用率统计[A_HUGE] -I { | SUM | ALL}中断统计[A_IRQ] -m {[,…| ALL}电源管理统计[A_PWR_…]关键字:CPU CPU instantaneous clock frequency FAN Fans speed FREQ CPU average clock frequency IN Voltage inputs TEMP Devices temperature USB USB devices plugged into the system -n {  [,...] | ALL } Network statistics [A_NET_...] Keywords are: DEV Network interfaces EDEV Network interfaces (errors) NFS NFS client NFSD NFS server SOCK Sockets (v4) IP IP traffic (v4) EIP IP traffic (v4) (errors) ICMP ICMP traffic (v4) EICMP ICMP traffic (v4) (errors) TCP TCP traffic (v4) ETCP TCP traffic (v4) (errors) UDP UDP traffic (v4) SOCK6 Sockets (v6) IP6 IP traffic (v6) EIP6 IP traffic (v6) (errors) ICMP6 ICMP traffic (v6) EICMP6 ICMP traffic (v6) (errors) UDP6 UDP traffic (v6) FC Fibre channel HBAs SOFT Software-based network processing -q [  [,...] | PSI | ALL ] System load and pressure-stall statistics Keywords are: LOAD Queue length and load average statistics [A_QUEUE] CPU Pressure-stall CPU statistics [A_PSI_CPU] IO Pressure-stall I/O statistics [A_PSI_IO] MEM Pressure-stall memory statistics [A_PSI_MEM] -r [ ALL ] Memory utilization statistics [A_MEMORY] -S Swap space utilization statistics [A_MEMORY] -u [ ALL ] CPU utilization statistics [A_CPU] -v Kernel tables statistics [A_KTABLES] -W Swapping statistics [A_SWAP] -w Task creation and system switching statistics [A_PCSW] -y TTY devices statistics [A_SERIAL]

选择太多了!但是,您可以使用-一种选项收集字符串“bBdFHSvwWy”中包含的所有选项提供的数据。

包起来

尽管SAR.易于安装和使用,它提供了许多有关系统的表现方式的有价值的详细信息,可能会帮助您钻取出现问题时出现问题的原因。

唯一的“问题”是SAR.它会生成大量数据,您必须习惯使用它,并熟悉系统上的例行性能是什么样子的,然后才会突然出现不寻常的性能或担心的原因。

加入网络世界社区有个足球雷竞技appFacebookLinkedIn评论是最重要的主题。
相关:

版权©2021Raybet2

了解IT领导者如何建立网络防御。参加CSO的网络安全与信任未来峰会(7月20日至22日)