Linux 性能优化工具包 sysstat 以及 sysstat 服务

1. sysstat service

1.1. /etc/cron.d/sysstat

Linux 下的性能分析,少不了要使用 sysstat 工具包中的命令。同时 sysstat 服务会自动每个10分钟收集一次系统状态信息,并将它们存储到 /var/log/sa目录下。每天一个文件,文件名分别是sa01, sa02,... sa30..

[root@localhost sa]# pwd
/var/log/sa
[root@localhost sa]# ls sa01 sa03 sa05 sa06 sa07 sa08 sa09 sa10 sa11 sa12 sa13 sa14 sa15 sa25 sa26 sa27 sa28 sa29 sa30 sar25

自动收集系统信息,是通过 /etc/cron.d/sysstat 来实现的:

[root@localhost sa]# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1 # 0 * * * * root /usr/lib/sa/sa1 600 6 & # Generate a daily summary of process accounting at 23:53 53 23 * * * root /usr/lib/sa/sa2 -A

上面标示每个10分钟,运行一次 /usr/lib/sa/sa1 1 1, 该命令 man sa1:

sa1 - Collect and store binary data in the system activity daily data file.

SYNOPSIS:/usr/lib/sa/sa1 [ --boot | interval count ]

sa1 收集到的是 binary data. 所以 sa2 -A 负责将当天的二进制文件转换成文本文件。

sa2 - Write a daily report in the /var/log/sa directory

其中的收集信息的频率(10分钟一次)我们可以根据需要进行修改。

1.2. /etc/sysconfig/sysstat

/var/log/sa/目录下的文件保存时间等相关配置存在于文件 /etc/sysconfig/sysstat中:

 
[root@localhost ~]# cat /etc/sysconfig/sysstat
# sysstat-9.0.4 configuration file.

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28

# Compress (using gzip or bzip2) sa and sar files older than (in days): COMPRESSAFTER=31 # Parameters for the system activity data collector (see sadc manual page) # which are used for the generation of log files. SADC_OPTIONS="-S DISK" # Compression program to use. ZIP="bzip2"
 

其中的 HISTORY=28 表示最多保存28天的数据。保存时间,我们可以根据需要进行修改。

1.3. 确保 sysstat 服务启动:

[root@localhost ~]# chkconfig --level 35 sysstat on
[root@localhost ~]# chkconfig |grep sysstat sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off

上面是 sysstat 服务运行的知识。下面是 sysstat 工具包中的命令行如何使用收集到的信息,来了解系统的运行情况。

2. sysstat 工具包中的命令

sysstat工具包中有很多的分析命令,常用的有:sar, iostat, mpstat(multi processor stat), pidstat, vmstat等等。

其中的sar命令尤其强大,它一个命令就能够收集系统CPU, 内存,磁盘,网络,进程切换,swap, 甚至文件inode,等个方面的信息。sar 的应用比较多,而且也比较复杂,数据更为精确。

2.1 sar 命令

 

-A:所有报告的总和

-b:显示I/O和传递速率的统计信息

-B:显示换页状态

-d:输出每一块磁盘的使用信息

-e:设置显示报告的结束时间

-f:从制定的文件读取报告

-i:设置状态信息刷新的间隔时间

-P:报告每个CPU的状态

-R:显示内存状态

–u:输出cpu使用情况和统计信息

–v:显示索引节点、文件和其他内核表的状态

-w:显示交换分区的状态

-x:显示给定进程的装

-r:报告内存利用率的统计信息

 

将统计结果保存在文件并从文件读取内容:

        #sar -u -o /tmp/1.txt 2 3 #保存之文件,保存后的文件是二进制的,无法使用vim和cat直接打开

        # sar -u -f /tmp/1.txt #从二进制文件读取

 

1)sar -u 查看CPU信息:

sar -u, sar -u ALL, sar -u 1 5, sar -u ALL 1 5

 
[root@localhost ~]# sar -u 1 2
Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 11:02:27 AM CPU %user %nice %system %iowait %steal %idle 11:02:28 AM all 0.99 0.00 2.97 0.00 0.00 96.04 11:02:29 AM all 0.00 0.00 3.03 0.00 0.00 96.97 Average: all 0.50 0.00 3.00 0.00 0.00 96.50

输出项说明:

CPU:all 表示统计信息为所有 CPU 的平均值。

%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。

%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。

%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

#在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

如果要查看二进制文件test中的内容,需键入如下sar命令:

sar -u -f test

2)sar -r, sar -R 查看内存信息:

sar -r, sar -R, sar -r 1 5, sar -R 1 5

 
[root@localhost ~]# sar -r  1 2
Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 11:05:31 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 11:05:32 AM 824392 206156 20.00 71556 74584 82316 3.96 11:05:33 AM 824392 206156 20.00 71556 74584 82316 3.96 Average: 824392 206156 20.00 71556 74584 82316 3.96 [root@localhost ~]# sar -R 1 2 Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 11:05:56 AM frmpg/s bufpg/s campg/s 11:05:57 AM -11.11 0.00 0.00 11:05:58 AM 0.00 0.00 0.00 Average: -5.56 0.00 0.00

输出项说明:

kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.

kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).

%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

3)sar -S, sar -W 查看 swap:

sar -S, sar -S 1 5, sar -W, sar -W 1 5. sar -S 查看的是swap空间的使用情况,sar -W 是每秒发生的swap/page情况

复制代码
[root@localhost ~]# sar -S
Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 09:43:28 AM LINUX RESTART 09:50:02 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 10:00:01 AM 1048572 0 0.00 0 0.00 10:10:02 AM 1048572 0 0.00 0 0.00 10:20:01 AM 1048572 0 0.00 0 0.00 10:30:01 AM 1048572 0 0.00 0 0.00 10:40:02 AM 1048572 0 0.00 0 0.00 10:50:01 AM 1048572 0 0.00 0 0.00 11:00:01 AM 1048572 0 0.00 0 0.00 Average: 1048572 0 0.00 0 0.00 [root@localhost ~]# sar -S 1 5 Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 11:07:29 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 11:07:30 AM 1048572 0 0.00 0 0.00 11:07:31 AM 1048572 0 0.00 0 0.00 11:07:32 AM 1048572 0 0.00 0 0.00 11:07:33 AM 1048572 0 0.00 0 0.00 11:07:34 AM 1048572 0 0.00 0 0.00 Average: 1048572 0 0.00 0 0.00 [root@localhost ~]# sar -W Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 09:43:28 AM LINUX RESTART 09:50:02 AM pswpin/s pswpout/s 10:00:01 AM 0.00 0.00 10:10:02 AM 0.00 0.00 10:20:01 AM 0.00 0.00 10:30:01 AM 0.00 0.00 10:40:02 AM 0.00 0.00 10:50:01 AM 0.00 0.00 11:00:01 AM 0.00 0.00 Average: 0.00 0.00 [root@localhost ~]# sar -W 1 5 Linux 2.6.32-504.el6.i686 (localhost.localdomain) 10/20/2015 _i686_ (1 CPU) 11:09:51 AM pswpin/s pswpout/s 11:09:52 AM 0.00 0.00 11:09:53 AM 0.00 0.00 11:09:54 AM 0.00 0.00 11:09:55 AM 0.00 0.00 11:09:56 AM 0.00 

转载于:https://www.cnblogs.com/augusite/p/10790998.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值