歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

用Oracle存儲來分析Unix系統的性能


  一、 前言
  作為UNIX系統中的Oracle數據庫管理員,時刻監控操作系統的性能無疑是非常重要的,幸運的是UNIX系統提供了大量的監控命令,比如vmstat, iostat, sar, top等等,這些監控命令均以字符界面輸出結果,再加上UNIX系統中shell的強大分析功能,這樣我們只需要編寫一些腳本就可以實現自動的後台監控,當有問題的時候再自動發送郵件給DBA。
  其實相類似的一些監控腳本可能已經隨處可見了,但是本文提到的一個新的思路,就是利用Oracle數據庫的statspack空間來存儲監控的結果,再利用數據庫天生的檢索優勢,這樣比以往靠shell分析甚或是人工分析生成的監控結果文件要更加輕松,智能,同時也能實現更持久和更廣泛的監控。
  本文第一版主要以監控內存消耗和CPU等待的vmstat命令為例,將陸續添加iostat等其它命令的監控腳本。
  二、 思路
  首先安裝statspack,然後手工創建一個用於存儲vmstat命令輸出結果的表,再作一個shell定時執行vmstat,將結果全部插入數據庫表中,最後就是通過SQL定時分析表中的數據,超過預先指定的門限值就告警。同時根據表中的數據,我們還能作出系統性能的趨勢報告。
  三、 vmstat腳本及步驟
  1. 安裝statspack
QUOTE:sqlplus “/ as sysdba”
SQL> @?/rdbms/admin/spcreate.sql

  按照提示設定perfstat用戶的密碼之後,由於是10g,我選擇了SYSAUX表空間作為perfstat用戶的默認表空間,而沒有另行創建表空間。
  2. 創建stats$vmstat表
QUOTE:SQL> connect perfstat/perfstat
SQL> @create_vmstat_tab.sql
# create_vmstat_tab.sql
drop table stats$vmstat;
create table stats$vmstat
(
start_date date,
duration number,
server_name varchar2(20),
running_queue number,
waiting_queue number,
swap_in number,
swap_out number,
kbytes_page_in number,
Kbytes_page_out number,
page_scan number,
user_cpu number,
system_cpu number,
idle_cpu number,
wait_cpu number
)
tablespace sysaux
storage (initial 10m
next 1m
pctincrease 0)
;
comment on column stats$vmstat.start_date
is '監控時間';
comment on column stats$vmstat.duration
is '監控時長';
is '服務器名稱';
comment on column stats$vmstat.running_queue
is '執行隊列';
comment on column stats$vmstat.waiting_queue
is '等待隊列';
comment on column stats$vmstat.swap_in
is '每秒平均交換進LWPs數';
comment on column stats$vmstat.swap_out
is '交換出進程數';
comment on column stats$vmstat.kbytes_page_in
is '換頁進字節(K)';
comment on column stats$vmstat.kbytes_page_out
is '換頁出字節(K)';
comment on column stats$vmstat.page_scan
is '換頁守護進程掃描頁數';
comment on column stats$vmstat.user_cpu
is '用戶操作占用的CPU';
comment on column stats$vmstat.system_cpu
is '系統操作占用的CPU';
comment on column stats$vmstat.idle_cpu
is 'CPU空閒率';
comment on column stats$vmstat.wait_cpu
is 'CPU等待率(AIX獨有)';

  3. 創建vmstat目錄
  在oracle用戶主目錄下創建用於存放所有相關腳本的vmstat目錄。
  $ cd
  $ mkdir vmstat
Copyright © Linux教程網 All Rights Reserved