sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如:CPU 使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手。

官方网站: http://sebastien.godard.pagesperso-orange.fr

包含的工具

  • iostat

    输出CPU的统计信息和所有I/O设备的输入输出(I/O)统计信息

  • mpstat

    关于CPU的详细信息(单独输出或者分组输出)

  • pidstat

    关于运行中的进程/任务、CPU、内存等的统计信息

  • sar

    保存并输出不同系统资源(CPU、内存、IO、网络、内核等)的详细信息

  • sadc

    系统活动数据收集器,用于收集sar工具的后端数据

  • sa1

    系统收集并存储sadc数据文件的二进制数据,与sadc工具配合使用

  • sa2

    配合sar工具使用,产生每日的摘要报告

  • sadf

    用于以不同的数据格式(CVS或者XML)来格式化sar工具的输出

  • sysstat

    sysstat 工具包的 man 帮助页面。

  • nfsiostat

    NFS(Network File System)的I/O统计信息

  • cifsiostat

    CIFS(Common Internet File System)的统计信息

安装

  • CentOS

    通过yum安装:

    yum install sysstat
    

    或者通过rpm包安装:

    wget -c http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm
        
    sudo rpm -Uvh sysstat-11.7.3-1.x86_64.rpm
    

    推荐rpm包方式安装,因为能随时安装最新版本。

  • Ubuntu

    apt-get install sysstat
    
  • 编译安装

    官网下载最新的源码包,并解压。编译和安装命令:

    $ ./configure
    $ make
    $ su
    <enter root password>
    # make install
    

其他具体的安装信息可以看官方文档

查看是否成功安装:

mpstat -V
sysstat version 9.0.4
(C) Sebastien Godard (sysstat <at> orange.fr)

定时统计任务

如果是用yumapt-get方式安装,默认已经在/etc/cron.d/sysstat中配置好了计划日志;如果是编译安装或没有,可以手动配置,内容大致如下:

# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

统计的日志文件会存放在/var/log/sa这个目录下。每10分钟就进行一次日志的记录,在23:53对一天的日志进行汇总。

  • /usr/lib64/sa/sa1是一个可以使用 cron 进行调度生成二进制日志文件的 shell 脚本
  • /usr/lib64/sa/sa2是一个可以将二进制日志文件转换为用户可读的编码方式的 shell 脚本

可能会碰到的问题:

安装后首次执行sar会报如下错误:

无法打开 /var/log/sa/sa25: 没有那个文件或目录

原因是安装完sysstat后,定时任务还没生成那个文件。此处的 25 指的是日期。可以手动生成文件:

sudo sar -o 25

更多关于定时任务或开机启动的配置可以参考官方文档

参考资料