使用sar you can monitor performance of various Linux subsystems (CPU, Memory, I/O..) in real time.
使用sar, you can also collect all performance data 上 an 上-going basis, store them, and do historical analysis to identify bottlenecks.
Sar是sysstat软件包的一部分。
本文介绍了如何安装和配置sysstat软件包(包含sar实用程序),并介绍了如何使用sar监视以下Linux性能统计信息。
- Collective 中央处理器 usage
- Individual 中央处理器 statistics
- 已使用和可用的内存
- 交换空间已使用和可用
- 系统的整体I / O活动
- 单个设备的I / O活动
- 上下文切换统计
- 运行队列并加载平均数据
- 网络统计
- Report 萨尔 data from a specific time
这是您的唯一指南’需要sar实用程序。因此,将其添加为书签以供将来参考。
一,安装和配置Sysstat
安装Sysstat软件包
First, 使 sure the latest version of 萨尔 is available 上 your system. Install it using any 上e of the following methods depending 上 your distribution.
sudo apt-get install sysstat (or) yum install sysstat (or) rpm -ivh sysstat-10.0.0-1.i586.rpm
从源代码安装Sysstat
从下载最新版本 sysstat下载页面.
您也可以使用wget下载
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.0.tar.bz2 tar xvfj sysstat-10.0.0.tar.bz2 cd sysstat-10.0.0 ./configure --enable-install-cron
注意: 确保通过选项–enable-install-cron. This does the following automatically for you. 如果你 don’如果使用此选项配置sysstat,则必须自己手动执行此丑陋的工作。
- 创建/etc/rc.d/init.d/sysstat
- 创建从/etc/rc.d/rc*.d/目录到/etc/rc.d/init.d/sysstat的适当链接,以在Linux引导过程中自动启动sysstat。
- 例如,/ etc / rc.d / rc3.d / S01sysstat自动链接到/etc/rc.d/init.d/sysstat
After the 。/配置, install it as shown below.
使 make install
注意: 这将在/ usr / local / bin下安装sar和其他systat实用程序
安装后,使用以下命令验证sar版本“sar -V”。版本10是sysstat的当前稳定版本。
$ 萨尔 -V sysstat version 10.0.0 (C) Sebastien Godard (sysstat orange.fr)
Finally, 使 sure 萨尔 works. For example, the following gives the system 中央处理器 statistics 3 times (with 1 second interval).
$ 萨尔 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:27:32 PM 中央处理器 %user %nice %system %iowait %steal %闲 01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00 01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50 01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00 Average: all 0.33 0.00 0.17 0.00 0.00 99.50
Sysstat的实用程序部分
以下是其他sysstat实用程序。
- 萨尔 collects and displays 所有system activities statistics.
- 萨德克 代表“系统活动数据收集器”。这是进行数据收集的sar后端工具。
- sa1 将系统活动存储在二进制数据文件中。 sa1为此目的依赖于sadc。 sa1从cron运行。
- sa2 创建收集的统计信息的每日摘要。 sa2从cron运行。
- 萨德夫 可以生成CSV,XML和其他各种格式的sar报告。使用它可以将sar数据与其他工具集成在一起。
- iostat generates 中央处理器, I/O statistics
- mpstat displays 中央处理器 statistics.
- pidstat 根据流程ID(PID)报告统计信息
- nfsiostat displays NFSI/O statistics.
- 恒温器 生成CIFS统计信息。
本文重点介绍sysstat基础知识和sar实用程序。
Collect the 萨尔 statistics using cron job – sa1 and sa2
在/etc/cron.d目录下创建sysstat文件,该文件将收集历史sar数据。
# vi /etc/cron.d/sysstat */10 * * * * root / usr / local / lib / sa / sa1 1 1 53 23 * * * root / usr / local / lib / sa / sa2 -A
如果你’ve installed sysstat from source, the default location of sa1 and sa2 is /usr/local/lib/sa. 如果你’如果使用发行版更新方法(例如yum,up2date或apt-get)安装,则可能是/ usr / lib / sa / sa1和/ usr / lib / sa / sa2。
注意:要了解cron条目,请阅读 Linux Crontab:15个很棒的Cron作业示例.
/ usr / local / lib / sa / sa1
- 该程序每10分钟运行一次,并收集sar数据以供历史参考。
- 如果你 want to collect 萨尔 statistics every 5 minutes, change */10 to */5 in the above /etc/cron.d/sysstat file.
- 这会将数据写入/ var / log / sa / saXX文件。 XX是月份中的一天。 saXX文件是一个二进制文件。您无法通过在文本编辑器中将其打开来查看其内容。
- 例如,如果今天是每月的26日,则sa1将sar数据写入/ var / log / sa / sa26
- 您可以将两个参数传递给sa1:时间间隔(以秒为单位)和计数。
- 在上面的crontab示例中:sa1 1 1表示sa1以1秒的间隔(每10分钟)收集1次sar数据。
/ usr / local / lib / sa / sa2
- 它运行至接近午夜(23:53),以创建sar数据的每日摘要报告。
- sa2创建/ var / log / sa / 萨尔XX文件(请注意,这与sa1创建的saXX文件不同)。由sa2创建的sarXX文件是一个ascii文件,您可以在文本编辑器中查看它。
- 这还将删除早于一周的saXX文件。因此,编写一个每周运行的快速shell脚本,将/ var / log / sa / *文件复制到其他目录中以进行历史sar数据分析。
二。 10个实用的Sar用法示例
There are two ways to invoke 萨尔.
- 萨尔后跟一个选项(不指定saXX数据文件)。这将寻找当天’的saXX数据文件,并报告截至当天当天为止记录的性能数据。
- 萨尔后跟一个选项,并使用-f选项另外指定一个saXX数据文件。这将报告该特定日期的效果数据。即XX是月份中的某天。
在下面的所有示例中,我们将解释如何查看当天的某些效果数据。要查找特定日期,请添加 “-f /var/log/sa/saXX”在sar命令的末尾。
所有的sar命令在其输出中的第一行均带有以下内容。
$ 萨尔 -u Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器)
- Linux 2.6.18-194.el5PAE–系统的Linux内核版本。
- (开发数据库)– 的hostname where the 萨尔 data was collected.
- 2011/03/26– 的date when the 萨尔 data was collected.
- _i686_– 的system architecture
- (8个CPU)–该系统上可用的CPU数量。在多核系统上,这表示核的总数。
1. 中央处理器 Usage of 所有中央处理器s (sar -u)
这样可以得出所有CPU的累计实时CPU使用率。“1 3”每1秒报告3次。 Most likely you’我会专注于最后一个领域“%idle”查看CPU负载。
$ 萨尔 -u 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:27:32 PM 中央处理器 %user %nice %system %iowait %steal %闲 01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00 01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50 01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00 Average: all 0.33 0.00 0.17 0.00 0.00 99.50
以下是一些变化:
- 萨尔 -u Displays 中央处理器 usage for the current day that was collected until that point.
- 萨尔 -u 1 3 Displays real time 中央处理器 usage every 1 second for 3 times.
- 萨尔 -u ALL 与...一样“sar -u”但显示其他字段。
- 萨尔 -u 所有1 3 与...一样“sar -u 1 3”但显示其他字段。
- 萨尔 -u -f /var/log/sa/sa10 Displays 中央处理器 usage for the 10day of the month from the sa10 file.
2. 中央处理器 Usage of Individual 中央处理器 or Core (sar -P)
如果你 have 4 Cores 上 the machine and would like to see what the individual cores are doing, do the following.
“-P ALL”表示它应显示所有单个内核的统计信息。
在下面的示例中“CPU” column 0, 1, 2, and 3 indicates the corresponding 中央处理器 core numbers.
$ 萨尔 -P全部 1 1 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:34:12 PM 中央处理器 %user %nice %system %iowait %steal %闲 01:34:13 PM all 11.69 0.00 4.71 0.69 0.00 82.90 01:34:13 PM 0 35.00 0.00 6.00 0.00 0.00 59.00 01:34:13 PM 1 22.00 0.00 5.00 0.00 0.00 73.00 01:34:13 PM 2 3.00 0.00 1.00 0.00 0.00 96.00 01:34:13 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
“-P 1”表示它应仅显示第二核的统计信息。 (请注意,核心编号从0开始)。
$ 萨尔 -P 1 1 1 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:36:25 PM 中央处理器 %user %nice %system %iowait %steal %闲 01:36:26 PM 1 8.08 0.00 2.02 1.01 0.00 88.89
以下是一些变化:
- 萨尔 -P全部 Displays 中央处理器 usage broken down 通过 all cores for the current day.
- 萨尔 -P全部 1 3 Displays real time 中央处理器 usage for 所有cores every 1 second for 3 times (broken down 通过 all cores).
- 萨尔 -P 1 Displays 中央处理器 usage for core number 1 for the current day.
- 萨尔 -P 1 1 3 Displays real time 中央处理器 usage for core number 1, every 1 second for 3 times.
- 萨尔 -P全部 -f /var/log/sa/sa10 Displays 中央处理器 usage broken down 通过 all cores for the 10day day of the month from sa10 file.
3.可用内存和已用内存(sar -r)
这将报告内存统计信息。“1 3”每1秒报告3次。 Most likely you’ll focus 上 “kbmemfree” and “kbmemused”以获得免费和已使用的内存
$ 萨尔 -r 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 07:28:06 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact 07:28:07 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204 07:28:08 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204 07:28:09 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204 Average: 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
以下是一些变化:
- 萨尔 -r
- 萨尔 -r 1 3
- 萨尔 -r -f /var/log/sa/sa10
4.使用的交换空间(sar -S)
这将报告交换统计信息。“1 3”每1秒报告3次。 If the “kbswpused” and “%swpused”为0,则您的系统没有交换。
$ 萨尔 -S 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 07:31:06 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 07:31:07 AM 8385920 0 0.00 0 0.00 07:31:08 AM 8385920 0 0.00 0 0.00 07:31:09 AM 8385920 0 0.00 0 0.00 Average: 8385920 0 0.00 0 0.00
以下是一些变化:
- 萨尔 -S
- 萨尔 -S 1 3
- 萨尔 -S -f /var/log/sa/sa10
笔记:
- 使用“sar -R”以确定系统每秒释放,使用和缓存的内存页数。
- 使用“sar -H”识别已使用和可用的大页面(以KB为单位)。
- 使用“sar -B”生成分页统计信息。即每秒从磁盘中调入(和调出)的KB数。
- 使用“sar -W”生成页面交换统计信息。即每秒换页(和换页)。
5.总体I / O活动(sar -b)
这将报告I / O统计信息。“1 3”每1秒报告3次。
以下示例中显示以下字段。
- 点–每秒事务数(包括读取和写入)
- rtps–每秒读取交易
- wtps–每秒写入交易
- 面包–每秒读取的字节数
- bwrtn /秒–每秒写入的字节数
$ 萨尔 -b 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:56:28 PM 点 rtps wtps 面包 bwrtn/s 01:56:29 PM 346.00 264.00 82.00 2208.00 768.00 01:56:30 PM 100.00 36.00 64.00 304.00 816.00 01:56:31 PM 282.83 32.32 250.51 258.59 2537.37 Average: 242.81 111.04 131.77 925.75 1369.90
以下是一些变化:
- 萨尔 -b
- 萨尔 -b 1 3
- 萨尔 -b -f /var/log/sa/sa10
注意: 使用“sar -v”显示系统使用的inode处理程序,文件处理程序和伪终端的数量。
6.单个块设备I / O活动(sar -d)
要确定各个块设备(即特定的安装点,LUN或分区)的活动,请使用“sar -d”
$ 萨尔 -d 1 1 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:59:45 PM 开发者 点 rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 01:59:46 PM dev8-0 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM dev8-1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM dev120-64 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM dev120-65 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM dev120-0 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM dev120-1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM dev120-96 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91 01:59:46 PM dev120-97 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
在上面的例子中“DEV”指示特定的块设备。
例如:“dev53-1”表示一个块设备,其主编号为53,次编号为1。
如果使用如下所示的-p选项(漂亮打印),则设备名称(DEV列)可以显示实际的设备名称(例如:sda,sda1,sdb1等)。
$ 萨尔 -p -d 1 1 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:59:45 PM 开发者 点 rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 01:59:46 PM sda 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM sda1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10 01:59:46 PM sdb1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM sdc1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62 01:59:46 PM sde1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM sdf1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30 01:59:46 PM sda2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91 01:59:46 PM sdb2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
以下是一些变化:
- 萨尔 -d
- 萨尔 -d 1 3
- 萨尔 -d -f /var/log/sa/sa10
- 萨尔 -p -d
7.每秒显示上下文切换(sar -w)
这报告了每秒创建的进程总数以及每秒的上下文切换总数。“1 3”每1秒报告3次。
$ 萨尔 -w 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 08:32:24 AM proc/s cswch/s 08:32:25 AM 3.00 53.00 08:32:26 AM 4.00 61.39 08:32:27 AM 2.00 57.00
以下是一些变化:
- 萨尔 -w
- 萨尔 -w 1 3
- 萨尔 -w -f /var/log/sa/sa10
8.报告运行队列和平均负载(sar -q)
这将报告最近1分钟,5分钟和15分钟的运行队列大小和平均负载。“1 3”每1秒报告3次。
$ 萨尔 -q 1 3 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 06:28:53 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 受阻 06:28:54 AM 0 230 2.00 3.00 5.00 0 06:28:55 AM 2 210 2.01 3.15 5.15 0 06:28:56 AM 2 230 2.12 3.12 5.12 0 Average: 3 230 3.12 3.12 5.12 0
注意: 的“blocked” column displays the number of tasks that are currently 受阻 and waiting for I/O operation to complete.
以下是一些变化:
- 萨尔 -q
- 萨尔 -q 1 3
- 萨尔 -q -f /var/log/sa/sa10
9.报告网络统计信息(sar -n)
这将报告各种网络统计信息。例如:通过网卡接收(传输)的数据包数量,数据包故障统计信息等。“1 3”每1秒报告3次。
萨尔 -n KEYWORD
关键字可以是以下之一:
- 开发者–显示网络设备eth0,eth1等的重要统计信息,
- 埃德夫–显示网络设备故障统计信息
- NFS– Displays NFSclient activities
- 国家自然科学基金会–显示NFS服务器活动
- 袜子–显示用于IPv4的套接字
- IP –显示IPv4网络流量
- 企业信息平台–显示IPv4网络错误
- ICMP–显示ICMPv4网络流量
- EICMP–显示ICMPv4网络错误
- TCP协议–显示TCPv4网络流量
- ETCP–显示TCPv4网络错误
- UDP协议–显示UDPv4网络流量
- SOCK6,IP6,EIP6,ICMP6,UDP6用于IPv6
- 所有– This displays all of the above information. 的output will be very long.
$ 萨尔 -n 开发者1 1 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 01:11:13 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s 01:11:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 01:11:14 PM eth0 342.57 342.57 93923.76 141773.27 0.00 0.00 0.00 01:11:14 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10. Report Sar Data 使用Start 提姆e (sar -s)
当您使用/ var / log / sa / saXX文件查看历史sar数据时“sar -f”选项,它将显示该天特定时间的所有sar数据,从该日期的上午12:00开始。
使用“-s hh:mi:ss”选项,您可以指定开始时间。例如,如果您指定“sar -s 10:00:00”,它将显示从上午10点(而不是从午夜开始)开始的sar数据,如下所示。
You can combine -s option with other 萨尔 option.
例如,要报告本月26日早上10点开始的平均负载,请结合使用-q和-s选项,如下所示。
$ 萨尔 -q -f /var/log/sa/sa23 -s 10:00:01 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 受阻 10:10:01 AM 0 127 2.00 3.00 5.00 0 10:20:01 AM 0 127 2.00 3.00 5.00 0 ... 11:20:01 AM 0 127 5.00 3.00 3.00 0 12:00:01 PM 0 127 4.00 2.00 1.00 0
没有选择来限制结束时间。您只需要变得很有创意,并使用head命令,如下所示。
例如,从上午10点开始,如果要查看7个条目,则必须将上述输出传递给“head -n 10”.
$ 萨尔 -q -f /var/log/sa/sa23 -s 10:00:01 | 头-n 10 Linux 2.6.18-194.el5PAE(dev-db) 2011/03/26 _i686_ (8 中央处理器) 10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 受阻 10:10:01 AM 0 127 2.00 3.00 5.00 0 10:20:01 AM 0 127 2.00 3.00 5.00 0 10:30:01 AM 0 127 3.00 5.00 2.00 0 10:40:01 AM 0 127 4.00 2.00 1.00 2 10:50:01 AM 0 127 3.00 5.00 5.00 0 11:00:01 AM 0 127 2.00 1.00 6.00 0 11:10:01 AM 0 127 1.00 3.00 7.00 2
Linux性能监控和调优还有很多要讲的内容。我们才刚刚开始。表演系列中还会有更多文章。
Linux性能监视和调整系列中的先前文章:
如果你 enjoyed this article, you might also like..
![]() |
![]() |
![]() |
![]() |
哇,真酷。保持良好的工作。这是Linux上信息最丰富的站点。
再次感谢。