重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如何理解System Activity Report,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
专业从事成都网站建设、做网站,高端网站制作设计,小程序制作,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用成都h5网站建设+CSS3前端渲染技术,响应式网站设计,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。
sar 命令行的常用格式:
sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,
file 在此处不是关键字,是文件名。options 为命令行选项,sar命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。
-n: 记录网络使用情况
默认监控: sar 5 5 // CPU和IOWAIT统计状态
(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -P ALL 5 5 // 每颗CPU的使用状态信息和IOWAIT统计状态
(9) sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5 // 内存和swap空间使用情况
(11) sar -R 5 5 // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5 // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5 // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5 // 每秒上下文交换的数目
(15) sar -W 5 5 // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5 // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5 // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
CPU CPU 标识符;“all”表示所有 CPU
%user 用户进程使用的 CPU 百分比。Oracle 进程属于这一类。
%nice 在 nice 优先级下执行的 CPU 利用率百分比
%system 执行系统进程的 CPU 百分比
%iowait 等待进行 I/O 操作的 CPU 百分比
%idle 等待工作的 CPU 空闲百分比
sar 依托于 sysstat 包
[root@testdb ~]# rpm -qa|grep sysstat
sysstat-7.0.2-11.el5
如果没有安装可以使用 yum install sysstat 进行安装
启动sysstat
/etc/init.d/sysstat start
设置sysstat自启动
checkfig sysstat on
1.手工编写脚本使用sar命令监控系统
1.1 抽取昨日的sar 文件,比较麻烦.
1.2 每天23:59:59 抽取当天的 sar 信息到文件, oracle 数据中采用外部表进行访问
1.21 定义脚本
#!/bin/bash
sar | awk '/:01/{print $1,$2,$3,$4,$5,$6,$7,$8,$9}' >>/tmp/sarlog.txt
上面是脚本代码,定义在 crontab 中.
12:10:01 AM all 0.05 0.00 0.02 0.08 0.00 99.86
以上面一行为例,都是 :01 分运行的,所以我根据这个条件来获取每一行
1.22 创建外部表
SQL> create or replace directory sardump as '/tmp';
Directory created.
CREATE TABLE EXTER_SAR
(
vdate VARCHAR(12),
vapm VARCHAR(12),
vcpu VARCHAR(12),
vuser VARCHAR(12),
vnice VARCHAR(12),
vsystem VARCHAR(12),
viowait VARCHAR(12),
vsteal VARCHAR(12),
vidle VARCHAR(12)
) ORGANIZATION EXTERNAL
(
type oracle_loader
default directory sardump
access parameters
(
records delimited by newline
fields terminated by ' '
)
location ('sarlog.txt')
);
1.23 进行一次验证
SQL> select * from EXTER_SAR;
VDATE VAPM VCPU VUSER VNICE VSYSTEM VIOWAIT VSTEAL VIDLE
------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.05 0.00 0.02 0.08 0.00 99.86
大概实现了目的
2.系统自动定时监控
2.1 修改运行时间
默认为10分钟监控一次
[root@testdb ~]# cat /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
可以将 */10 进行修改
2.2 修改保存时间
sar 系统定时监控默认保存 7 天,保存路径为 /var/log/sa
[root@testdb ~]# cat /usr/lib64/sa/sa2
#!/bin/sh
# /usr/lib64/sa/sa2.sh
# (C) 1999-2006 Sebastien Godard (sysstat wanadoo.fr)
#
# Changes:
# - 2004-01-22 Nils Philippsen
# make history configurable
#
HISTORY=7
[ -r /etc/sysconfig/sysstat ] && . /etc/sysconfig/sysstat
[ ${HISTORY} -gt 25 ] && HISTORY=25
S_TIME_FORMAT=ISO ; export S_TIME_FORMAT
umask 0022
DATE=`date +%d`
RPT=/var/log/sa/sar${DATE}
ENDIR=/usr/bin
DFILE=/var/log/sa/sa${DATE}
[ -f "$DFILE" ] || exit 0
cd ${ENDIR}
${ENDIR}/sar $* -f ${DFILE} > ${RPT}
find /var/log/sa \( -name 'sar??' -o -name 'sa??' \) -mtime +"${HISTORY}" -exec rm -f {} \;
可将 HISTORY=7 进行修改
看完上述内容,你们掌握如何理解System Activity Report的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!