一、sar工具安裝
1、進入yum配置文件目錄:
cd /etc/yum.repos.d/
2、vi CentOS-Base.repo命令創建文件CentOS-Base.repo
文件內容見網頁:http://mirrors.163.com/.help/CentOS7-Base-163.repo
具體內容如下:
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
3、更新:yum update
系統報錯:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
4、使用yum install deltarpm安裝deltarpm
5、使用yum install sysstat安裝sar工具
6、第一次執行sar系統報錯:無法打開 /var/log/sa/sa18: 沒有那個文件或目錄,可以忽略,稍等一會兒再執行sar,OK運行成功
7、sysstat包安裝成功后,一般如下的幾個命令可以使用:
sar
iostat
sa1
sa2
sadf
mpstat
sadc
sysstat
二、sar工具使用
1、查看CPU使用情況 sar 2 3
//每隔2秒,顯示3次,CPU使用的情況
2、查看網絡吞吐量 sar -n DEV 2 3
//每隔2秒,顯示3次,網絡吞吐量情況
[root@host187 opbill]# sar -n DEV 2 3
Linux 3.10.0-327.22.2.el7.x86_64 (host187.eayun.com) 2016年08月18日 _x86_64_ (24 CPU)
10時02分42秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10時02分44秒 vnet7 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet9 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet1 0.00 7.50 0.00 0.64 0.00 0.00 0.00
10時02分44秒 ovs-system 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 eayunosmgmt 21.50 14.50 11.42 7.46 0.00 0.00 0.00
10時02分44秒 br-int 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet6 0.00 7.50 0.00 0.64 0.00 0.00 0.00
10時02分44秒 br-tun 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet3 1.00 8.50 0.19 5.52 0.00 0.00 0.00
10時02分44秒 eth0 19.00 11.50 2.83 2.31 0.00 0.00 3.00
10時02分44秒 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 eth4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 eth5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 lo 16.00 16.00 6.78 6.78 0.00 0.00 0.00
10時02分44秒 vnet10 0.00 7.50 0.00 0.64 0.00 0.00 0.00
10時02分44秒 vnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 ;vdsmdummy; 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 vnet11 0.00 7.50 0.00 0.64 0.00 0.00 0.00
10時02分44秒 vnet2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分44秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10時02分46秒 vnet7 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet9 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet1 0.50 6.00 0.02 0.42 0.00 0.00 0.00
10時02分46秒 ovs-system 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 eayunosmgmt 8.50 3.50 1.38 2.58 0.00 0.00 0.00
10時02分46秒 br-int 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet6 0.00 6.00 0.00 0.42 0.00 0.00 0.00
10時02分46秒 br-tun 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet3 2.00 7.50 0.45 1.57 0.00 0.00 0.00
10時02分46秒 eth0 16.50 6.00 10.10 1.92 0.00 0.00 4.50
10時02分46秒 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 eth4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 eth5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 lo 9.50 9.50 0.89 0.89 0.00 0.00 0.00
10時02分46秒 vnet10 0.00 6.00 0.00 0.42 0.00 0.00 0.00
10時02分46秒 vnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 ;vdsmdummy; 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 vnet11 0.00 6.00 0.00 0.42 0.00 0.00 0.00
10時02分46秒 vnet2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分46秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10時02分48秒 vnet7 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet9 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet1 0.00 7.50 0.00 0.59 0.00 0.00 0.00
10時02分48秒 ovs-system 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 eayunosmgmt 7.50 2.00 0.52 1.38 0.00 0.00 0.00
10時02分48秒 br-int 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet6 0.50 7.50 0.02 0.59 0.00 0.00 0.00
10時02分48秒 br-tun 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet3 0.00 7.50 0.00 0.59 0.00 0.00 0.00
10時02分48秒 eth0 9.50 3.00 1.44 1.51 0.00 0.00 4.50
10時02分48秒 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 eth4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 eth5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 lo 8.00 8.00 5.22 5.22 0.00 0.00 0.00
10時02分48秒 vnet10 0.00 7.50 0.00 0.59 0.00 0.00 0.00
10時02分48秒 vnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 ;vdsmdummy; 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時02分48秒 vnet11 0.00 7.50 0.00 0.59 0.00 0.00 0.00
10時02分48秒 vnet2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均時間: vnet7 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet9 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet1 0.17 7.00 0.01 0.55 0.00 0.00 0.00
平均時間: ovs-system 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: eayunosmgmt 12.50 6.67 4.44 3.80 0.00 0.00 0.00
平均時間: br-int 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet6 0.17 7.00 0.01 0.55 0.00 0.00 0.00
平均時間: br-tun 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet3 1.00 7.83 0.22 2.56 0.00 0.00 0.00
平均時間: eth0 15.00 6.83 4.79 1.91 0.00 0.00 4.00
平均時間: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: eth4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: eth5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: lo 11.17 11.17 4.29 4.29 0.00 0.00 0.00
平均時間: vnet10 0.00 7.00 0.00 0.55 0.00 0.00 0.00
平均時間: vnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: ;vdsmdummy; 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: vnet11 0.00 7.00 0.00 0.55 0.00 0.00 0.00
平均時間: vnet2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
3、查看內存使用情況 sar -r 2 3
//每隔2秒,顯示3次,內存使用的情況
4、性能收集調整方法
系統信息
[root@host187 sa]# uname -a
Linux host187.eayun.com 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
性能收集配置文件
[root@host187 sa]# cat /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
參數說明
1、/etc/cron.d/sysstat為一個定時作業的格式編寫的,我們可以自己調整它的執行時間間隔,要求每分鍾執行一次,可將“*/10”改成“*/1”。
2、 */10 * * * * root /usr/lib64/sa/sa1 1 1 這一行的作用是執行sa1收集系統性能,后面的“1 1”表示sa1每次只執行一次,每次的性能收集時間跨度為一秒。
3、 53 23 * * * root /usr/lib64/sa/sa2 -A 這使用是:每天的23:53分生成當天的性能數據。
系統性能數據記錄文件
上面說到的由sa1生成的性能數據不明白的可以看下面兩個文件的生成時間給出的實例,一個是:09-21 23:50 另一個是:09-21 23:53。
4、[D]日期中的天數
sa[D]:表示性能原始數據收集的日期。不懂的可以看下面的實例說明,如果這個也看不懂的話,就回去磨牆吧。
sar[D]:這個是由sa2這個腳本調用sa[D]生成的,人可讀的性能數據記錄。
下面是實例:
[root@host187 sa]# ls -al /var/log/sa/sa18
-rw-r--r--. 1 root root 53204 8月 18 10:10 /var/log/sa/sa18
默認的保留天數為:28天,需要修改保留天數的可以在下面的文件中修改。
[root@host187 sa]# cat /etc/sysconfig/sysstat
# sysstat-10.1.5 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=DAY,DAY為你想要的保留天數。
默認性能的收集策略是不收集磁盤性能數據到sa[D]文件中的,如果要收集磁盤的數據,我們就要手工修改/usr/lib64/sa/sa1文件,修改方式如下:
在exec ${ENDIR}/sadc -F -L 1 1 - 改為exec ${ENDIR}/sadc -F -d -L 1 1 -
將exec ${ENDIR}/sadc -F -L $* - 改為exec ${ENDIR}/sadc -F -d -L $* -
修改后的結果如下:
[root@host187 sa]# cat /usr/lib64/sa/sa1
#!/bin/sh
# /usr/lib64/sa/sa1
# (C) 1999-2012 Sebastien Godard (sysstat <at> orange.fr)
#
#@(#) sysstat-10.1.5
#@(#) sa1: Collect and store binary data in system activity data file.
#
# Set default value for some variables.
# Used only if ${SYSCONFIG_DIR}/sysstat doesn't exist!
HISTORY=0
SADC_OPTIONS=""
DDIR=/var/log/sa
DATE=`date +%d`
CURRENTFILE=sa${DATE}
CURRENTDIR=`date +%Y%m`
SYSCONFIG_DIR=/etc/sysconfig
umask 0022
[ -r ${SYSCONFIG_DIR}/sysstat ] && . ${SYSCONFIG_DIR}/sysstat
if [ ${HISTORY} -gt 28 ]
then
cd ${DDIR} || exit 1
[ -d ${CURRENTDIR} ] || mkdir -p ${CURRENTDIR}
# If ${CURRENTFILE} exists and is a regular file, then make sure
# the file was modified this day (and not e.g. month ago)
# and move it to ${CURRENTDIR}
[ ! -L ${CURRENTFILE} ] &&
[ -f ${CURRENTFILE} ] &&
[ "`date +%Y%m%d -r ${CURRENTFILE}`" = "${CURRENTDIR}${DATE}" ] &&
mv -f ${CURRENTFILE} ${CURRENTDIR}/${CURRENTFILE}
touch ${CURRENTDIR}/${CURRENTFILE}
# Remove the "compatibility" link and recreate it to point to
# the (new) current file
rm -f ${CURRENTFILE}
ln -s ${CURRENTDIR}/${CURRENTFILE} ${CURRENTFILE}
else
# If ${CURRENTFILE} exists, is a regular file and is from a previous
# month then delete it so that it is recreated by sadc afresh
[ -f ${CURRENTFILE} ] && [ "`date +%Y%m -r ${CURRENTFILE}`" -lt "${CURRENTDIR}" ] && rm -f ${CURRENTFILE}
fi
ENDIR=/usr/lib64/sa
cd ${ENDIR}
[ "$1" = "--boot" ] && shift && BOOT=y || BOOT=n
if [ $# = 0 ] && [ "${BOOT}" = "n" ]
then
# Note: Stats are written at the end of previous file *and* at the
# beginning of the new one (when there is a file rotation) only if
# outfile has been specified as '-' on the command line...
exec ${ENDIR}/sadc -F -d -L ${SADC_OPTIONS} 1 1 -
else
exec ${ENDIR}/sadc -F -d -L ${SADC_OPTIONS} $* -
fi
配置驗證
這個要在系統中查看執行:sar -d -f /var/log/sa/sa[D],當天為18日則執行如下:sar -d -f /var/log/sa/sa18 ,有以下輸出證明已經有效果了哦。
[root@host187 sa]# sar -d -f /var/log/sa/sa18 |more
Linux 3.10.0-327.22.2.el7.x86_64 (host187.eayun.com) 2016年08月18日 _x86_64_ (24 CPU)
09時50分01秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10時00分02秒 dev8-16 18.25 0.00 411.08 22.52 0.00 0.08 0.08 0.15
10時00分02秒 dev8-0 45.58 337.24 15785.69 353.75 0.09 2.00 0.51 2.33
10時00分02秒 dev8-32 0.05 0.39 0.00 8.00 0.00 0.03 0.03 0.00
10時00分02秒 dev8-48 75.68 1811.04 753.89 33.89 0.23 3.06 3.01 22.81
10時00分02秒 dev8-64 0.05 0.39 0.00 8.00 0.00 0.45 0.45 0.00
10時00分02秒 dev8-80 1.43 11.42 0.00 8.00 0.00 0.07 0.07 0.01
10時00分02秒 dev8-96 3.15 28.90 0.00 9.17 0.00 0.12 0.12 0.04
10時00分02秒 dev253-0 12.64 51.76 213.09 20.95 0.01 0.57 0.14 0.18
10時00分02秒 dev253-1 0.27 0.00 2.17 8.00 0.00 0.52 0.28 0.01
10時00分02秒 dev8-112 67.78 1095.88 241.28 19.73 0.05 0.79 0.77 5.23
……………………
有下面的輸出就需要查原因了:
[root@host187 sa]# sar -d -f /var/log/sa/sa29
Requested activities not available in file
[root@host187 sa]#
方法有:
ü 重啟一下sysstat服務。
ü 查看一下sysstat服務的配置,修改成隨系統自啟動的方式。
[root@host187 sa]#chkconfig sysstat --list
sysstat 0:off 1:off 2:on 3:on 4:off 5:on 6:off
[root@host187 sa]#