用Oracle存储来分析Unix系统的性能

时间:2007-01-13 17:43:30   来源:  作者:  点击:次  出处:技术无忧
关键字:分析 Unix 系统 性能

3. 创建vmstat目录

在oracle用户主目录下创建用于存放所有相关脚本的vmstat目录。


$ cd

$ mkdir vmstat
4. 创建get_vmstat.ksh脚本

改脚本用于定时执行vmstat命令并且将结果存入数据库


# get_vmstat.ksh

#!/bin/ksh

#----------------------------------------

# 首先设定环境变量,根据实际环境修改. . . .

#----------------------------------------

ORACLE_SID=kamusdb

export ORACLE_SID

ORACLE_HOME=`cat /var/opt/oracle/oratab|grep
^$ORACLE_SID:|cut -f2 -d':'`

export ORACLE_HOME

PATH=$ORACLE_HOME/bin:$PATH

export PATH


SERVER_NAME=`uname -a|awk '{print $2}'`

typeset -u SERVER_NAME

export SERVER_NAME


#----------------------------------------

# 每5分钟运行一次vmstat(300秒),可以根据实际情况修改 . . . .

#----------------------------------------

SAMPLE_TIME=300


#----------------------------------------

# 脚本一旦运行将不会停止,除非关闭操作系统 . . . .

# -S参数表示监控swap空间的情况,报告si,so列

# msg$$中的$$表示一个任意2位数字,系统自动生成

#----------------------------------------

while true

do

vmstat –S ${SAMPLE_TIME} 2 > /tmp/msg$$


#----------------------------------------

# Solaris系统的vmstat没有wait CPU统计,所以我们在那一列中存入0

# $1, $2, $6, $7等数字分别表示vmstat输出中的第几列,

# 每个Unix系统中的vmstat输出可能都不一样,

# 所以修改这些列号,就可以应对不同的操作系统。

#----------------------------------------

cat /tmp/msg$$|sed 1,3d | awk '
{ printf("%s %s %s %s %s %s %s %s %s %s n",
$1, $2, $6, $7, $8, $9, $12, $20, $21, $22) }'
| while read RUNQUE WAITQUE SWAPIN SWAPOUT
 PAGE_IN PAGE_OUT PAGE_SCAN USER_CPU SYSTEM_CPU IDLE_CPU

do


$ORACLE_HOME/bin/sqlplus perfstat/perfstat <<EOF

insert into perfstat.stats$vmstat

values (

SYSDATE,

$SAMPLE_TIME,

'$SERVER_NAME',

$RUNQUE,

$WAITQUE,

$SWAPIN,

$SWAPOUT,

$PAGE_IN,

$PAGE_OUT,

$PAGE_SCAN,

$USER_CPU,

$SYSTEM_CPU,

$IDLE_CPU,

0

);

commit;

EXIT

EOF

done

done


#----------------------------------------

#删除临时文件

#----------------------------------------

rm /tmp/msg$$

有关操作系统的更多文章请进:技术无忧


 2/5   |‹ ‹‹ 1 2 3 4 5 ›› ›|

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

特别推荐