ORACLE效能診斷―學習statspack筆記(四)[擴充statspack收集伺服器統計]

來源:互聯網
上載者:User
oracle|筆記|伺服器|統計|效能
ORACLE效能診斷―學習statspack筆記(四)[擴充statspack收集伺服器統計]

 

作者:劉穎博

時間:2004-3-22

mail:liuyingbo@126.com,請指正

 

轉載請註明出處及作者

 

說明:由於STATSPACK並不能擷取全面分析效能問題所需要的所有資訊,所以需要擴充其收集伺服器的統計資訊。(本文環境REDHAT Linux7.2)

 

VMSTAT介紹

通過STATSPACK收集伺服器資訊,主要通過收集VMSTAT的資訊來展現伺服器狀況。VMSTAT工具是最常見的UNIX監控工具,可以展現給定時間間隔的伺服器的狀態值。

       一般VMSTAT工具的使用是通過兩個數字參數來完成的,第一個參數是採樣的時間間隔數,單位是秒,第二個參數是採樣的次數。如:

[oracle@brucelau oracle]$ vmstat 1 2

   procs                      memory    swap         io  system         CPU

 r  b  w   swpd   free   buff  cache   si  so    bi    bo   in    cs  us  sy  id

 1  0  0      0 271844 186052 255852   0   0     2     6  102    10   0   0 100

 0  0  0      0 271844 186052 255852   0   0     0     0  104    11   0   0 100

 

(註:目前系統幾乎空閑,並且不同作業系統VMSTAT輸出內容有所不同)

 

目前說來,對於伺服器監控有用處的度量主要有:

r(運行隊列)

pi(頁匯入)

us(使用者CPU)

sy(系統CPU)

id(空閑)

 

通過VMSTAT識別CPU瓶頸

r(運行隊列)展示了正在執行和等待CPU資源的任務個數。當這個值超過了CPU數目,就會出現CPU瓶頸了。

獲得CPU個數的命令(LINUX環境):

cat /proc/cpuinfo|grep processor|wc –l

當r值超過了CPU個數,就會出現CPU瓶頸,解決辦法大體幾種:

1.       最簡單的就是增加CPU個數

2.       通過調整任務執行時間,如大任務放到系統不繁忙的情況下進行執行,進爾平衡系統任務

3.       調整已有任務的優先順序

 

通過VMSTAT識別CPU滿負荷

首先需要聲明一點的是,vmstat中CPU的度量是百分比的。當us+sy的值接近100的時候,表示CPU正在接近滿負荷工作。但要注意的是,CPU滿負荷工作並不能說明什麼,UNIX總是試圖要CPU儘可能的繁忙,使得任務的輸送量最大化。唯一能夠確定CPU瓶頸的還是r(運行隊列)的值。

 

通過VMSTAT識別RAM瓶頸

資料庫伺服器都只有有限的RAM,出現記憶體爭用現象是Oracle的常見問題。

首先察看RAM的數量,命令如下(LINUX環境):

[root@brucelau root]#free

             total       used       free     shared    buffers     cached

Mem:       1027348     873312     154036     185736     187496     293964

-/+ buffers/cache:     391852     635496

Swap:      2096440          0    2096440

 

當然可以使用top等其他命令來顯示RAM。

當記憶體的需求大於RAM的數量,伺服器啟動了虛擬記憶體機制,通過虛擬記憶體,可以將RAM段移到SWAP DISK的特殊磁碟段上,這樣會出現虛擬記憶體的頁匯出和頁匯入現象,頁匯出並不能說明RAM瓶頸,虛擬記憶體系統經常會對記憶體段進行頁匯出,但頁匯入操作就表明了伺服器需要更多的記憶體了,頁匯入需要從SWAP DISK上將記憶體段複製回RAM,導致伺服器速度變慢。

 

解決的辦法有幾種:

1.       最簡單的,加大RAM

2.       改小SGA,使得對RAM需求減少

3.       減少RAM的需求(如:減少PGA)

 

我們基本的瞭解了VMSTAT工作,下面是STATSPACK通過vmstat統計收集伺服器效能資料。

 

STATSPACK通過vmstat收集伺服器資訊

首先在perfstat使用者下建一個儲存伺服器資訊的表:如

建表:

create table stats$vmstat

(

start_date       date,  --系統時間

duration   date,  --時間間隔

server_name       varchar2(20), --伺服器名稱

runque_waits       number, --運行隊列資料

page_in          number, --頁匯入資料

page_out       number, --頁匯出資料

user_cpu       number, --使用者cpu資料

system_cpu       number, --系統cpu資料

idle_cpu       number, --空閑cpu資料

wait_cpu       number –等待cpu資料(只是aix存在)

)

tablespace perfstat;

然後,通過UNIX/LINUX的shell變成,利用vmstat的結果來擷取相應的伺服器資訊,並且存放到表中。

 

關於shell編程,可能已經超出本文內容,並且誠實的說,本人並沒有shell編程的經驗,希望那位兄台可以完成shell編程的內容,並勞駕mail給我共用一下,謝了先!!

 

 

 

 

附:

LINUX上VMSTAT的協助手冊:(man vmstat的結果)

VMSTAT(8)          Linux Administrator's Manual         VMSTAT(8)

NAME

       vmstat - Report virtual memory statistics

 

SYNOPSIS

       vmstat [-n] [delay [ count]]

       vmstat[-V]

 

DESCRIPTION

       vmstat reports information about processes, memory, paging, block IO, traps, and CPU activity.

 

       The  first report produced gives averages since the last reboot.  Additional reports give information on a sam-

       pling period of length delay.  The process and memory reports are instantaneous in either case.

 

   Options

       The -n switch  causes the header to be displayed only once rather than periodically.

 

       delay is the delay between updates in seconds.  If no delay is specified, only one report is printed  with  the

       average values since boot.

 

       count is the number of updates.  If no count is specified and delay is defined, count defaults to infinity.

 

       The -V switch results in displaying version information.

 

FIELD DESCRIPTIONS

   Procs

       r: The number of processes waiting for run time.

       b: The number of processes in uninterruptable sleep.

       w: The number of processes swapped out but otherwise runnable.  This

          field is calculated, but Linux never desperation swaps.

 

   Memory

       swpd: the amount of virtual memory used (kB).

       free: the amount of idle memory (kB).

       buff: the amount of memory used as buffers (kB).

 

   Swap

       si: Amount of memory swapped in from disk (kB/s).

       so: Amount of memory swapped to disk (kB/s).

 

   IO

       bi: Blocks sent to a block device (blocks/s).

       bo: Blocks received from a block device (blocks/s).

 

   System

       in: The number of interrupts per second, including the clock.

       cs: The number of context switches per second.

:   CPU

       These are percentages of total CPU time.

       us: user time

       sy: system time

       id: idle time

 

NOTES

       vmstat does not require special permissions.

 

       These  reports  are intended to help identify system bottlenecks.  Linux vmstat does not count itself as a run-

       ning process.

 

       All linux blocks are currently 1k, except for CD-ROM blocks which are 2k.

 

FILES

       /proc/meminfo

       /proc/stat

       /proc/*/stat

 

SEE ALSO

       ps(1), top(1), free(1)

 

BUGS

       Does not tabulate the block io per device or count the number of system calls.

 

AUTHOR

       Written by Henry Ware <al172@yfn.ysu.edu>.

 

Throatwobbler Ginkgo Labs 27 July 1994                  VMSTAT(8)

 

 

(待續)

……………………………………………………………………………………

參考

Donald K.Burleson《ORACLE HIGH-PERFORMANCE TUNING WITH STATSPACK》

 

 

 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.