sar命令

//查看指定文件CPU使用记录
#sar -f /var/log/sa/sa03
00:00:01 CPU %user %nice %system %iowait %idle
00:10:01 all 52.32 0.00 30.92 1.40 15.37
00:20:01 all 50.11 0.00 28.97 0.82 20.10
00:30:01 all 45.94 0.00 26.23 0.88 26.95
00:40:02 all 44.92 0.00 25.54 0.81 28.73
00:50:01 all 45.34 0.00 26.17 0.77 27.72
01:00:01 all 43.23 0.00 24.85 0.94 30.97
01:10:01 all 43.65 0.00 25.15 0.84 30.36
01:20:01 all 43.13 0.00 24.99 0.92 30.96

//查看指定文件1/5/15分钟平均负载记录
#sar -q -f /var/log/sa/sa03
00:00:01 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
00:10:01 5 330 15.00 17.72 17.09
00:20:01 4 331 8.02 13.84 16.11
00:30:01 4 331 17.79 13.42 14.56
00:40:02 12 332 11.66 12.31 13.51
00:50:01 3 326 13.88 12.23 12.90
01:00:01 26 337 10.10 12.03 12.42
01:10:01 8 334 12.34 10.78 11.46
01:20:01 13 329 10.00 11.58 11.49

//查看指定文件7点到9点CPU使用记录,如要看负载加参数-q
#sar -s 07:00:00 -e 10:00:00 -f /var/log/sa/sa03
07:00:01 CPU %user %nice %system %iowait %idle
07:10:01 all 42.39 0.00 23.54 0.64 33.43
07:20:01 all 41.42 0.00 24.47 0.77 33.34
07:30:01 all 42.93 0.00 25.55 0.75 30.77
07:40:01 all 50.33 0.00 29.08 0.66 19.92
07:50:01 all 51.40 0.00 30.30 0.69 17.61
08:00:01 all 47.63 0.00 28.37 0.66 23.34
08:10:01 all 44.23 0.00 26.30 0.71 28.76
08:20:01 all 43.46 0.00 24.58 0.58 31.37
08:30:01 all 43.86 0.00 26.06 0.60 29.49
08:40:01 all 44.80 0.00 26.86 0.66 27.67
08:50:02 all 47.46 0.00 27.16 0.51 24.87
09:00:01 all 46.10 0.00 27.61 0.47 25.81
09:10:01 all 46.95 0.00 27.95 0.69 24.40
09:20:02 all 49.30 0.00 28.27 0.79 21.64
09:30:01 all 49.99 0.00 29.07 0.64 20.30
09:40:01 all 51.41 0.00 30.75 0.52 17.32
09:50:01 all 51.49 0.00 30.20 0.66 17.65
Average: all 46.77 0.00 27.42 0.65 25.16

安装sysstat工具包后会自动每10分钟采集一次
脚本在/etc/cron.d/sysstat
默认只保留7天的文件
要保留更长时间要修改配置文件
有人觉得是修改/etc/sysconfig/sysstat这个文件,其实不是的
应该是/usr/lib/sa/sa2(64位/usr/lib64/sa/sa2),来看看里面的代码
HISTORY=7
[ -r /etc/sysconfig/sysstat ] && . /etc/sysconfig/sysstat
[ ${HISTORY} -gt 28 ] && HISTORY=28
#就是这个了,如果sysstat文件设置了历史天数超过28天就不会生效的
超过28天就要修改这个地方了。

不要小看这个命令,它能够让你对系统运行情况了如指掌。

细化补充:
-A:所有报告的总和

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

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

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

 内存分页监控:
sar -r -f /var/log/sa29    //查看历史内存
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

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

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

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

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

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

内存分页监控

例如,每10秒采样一次,连续采样3次,监控内存分页:

sar -B 10 3
输出项说明:

pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)

pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)

fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)

majflt/s:每秒钟产生的主缺页数.

pgfree/s:每秒被放入空闲队列中的页个数

pgscank/s:每秒被kswapd扫描的页个数

pgscand/s:每秒直接被扫描的页个数

pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数

%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

I/O和传送速率监控

每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:

sar -b 10 3

屏幕显示如下:

18:51:05 tps rtps wtps bread/s bwrtn/s

18:51:15 0.00 0.00 0.00 0.00 0.00

18:51:25 1.92 0.00 1.92 0.00 22.65

18:51:35 0.00 0.00 0.00 0.00 0.00

Average: 0.64 0.00 0.64 0.00 7.59

输出项说明:

tps:每秒钟物理设备的 I/O 传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为 块/s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

6. 进程队列长度和平均负载状态监控

例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:

sar -q 10 3

屏幕显示如下:

19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15

19:26:00 0 259 0.00 0.00 0.00

19:26:10 0 259 0.00 0.00 0.00

19:26:20 0 259 0.00 0.00 0.00

Average: 0 259 0.00 0.00 0.00

输出项说明:

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

7. 系统交换活动信息监控

例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:

sar -    W 10 3

屏幕显示如下:

19:39:50 pswpin/s pswpout/s

19:40:00 0.00 0.00

19:40:10 0.00 0.00

19:40:20 0.00 0.00

Average: 0.00 0.00

输出项说明:

pswpin/s:每秒系统换入的交换页面(swap page)数量

pswpout/s:每秒系统换出的交换页面(swap page)数量

8. 设备使用情况监控

例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:

# sar -d 10 3 –p

屏幕显示如下:

17:45:54    DEV    tps    rd_sec/s    wr_sec/s    avgrq-sz    avgqu-sz    await    svctm    %util

17:46:04    scd0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00

17:46:04    sda    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00

17:46:04    vg_livedvd-lv_root    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00

17:46:04    vg_livedvd-lv_swap    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00

其中:

参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0

tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.

rd_sec/s:每秒读扇区的次数.

wr_sec/s:每秒写扇区的次数.

avgrq-sz:平均每次设备I/O操作的数据大小(扇区).

avgqu-sz:磁盘请求队列的平均长度.

await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).

svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.

%util:I/O请求占CPU的百分比,比率越大,说明越饱和.

1. avgqu-sz 的值较低时,设备的利用率较高。

2. 当%util的值接近 1% 时,表示设备带宽已经占满。

 inode、文件和其他内核表监控

例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:

sar -v 10 3

屏幕显示如下:

17:10:49 dentunusd file-nr inode-nr pty-nr

17:10:59 6301 5664 12037 4

17:11:09 6301 5664 12037 4

17:11:19 6301 5664 12037 4

Average: 6301 5664 12037 4

输出项说明:

dentunusd:目录高速缓存中未被使用的条目数量

file-nr:文件句柄(file handle)的使用数量

inode-nr:索引节点句柄(inode handle)的使用数量

pty-nr:使用的pty数量

查看页面交换发生状况
sar -W
页面发生交换时,服务器的吞吐量会大幅下降;服务器状况不良时,如果怀疑因为内存不足而导致了页面交换的发生,可以使用这个命令来确认是否发生了大量的交换;
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量

posted @ 2018-05-21 09:35  杨哥哥  阅读(180)  评论(0编辑  收藏  举报