close

1. 檢查作業系統是否存在IO的問題?使用的工具有sar,這是一個比較通用的工具。(加上-u參數為看CPU狀態,,每3秒更新一次,,共顯示5)

sar.jpg 

%
usr指的是用戶process使用的CPU資源的百分比
%
system指的是系統process使用CPU資源的百分比
%
iowait指的是等待I/O完成的百分比,這是值得我們觀注 的一項
%
idle即閒置的百分比。如果%wio列的值很大,如在30以上,說明你的系統的I/O存在瓶頸,你的CPU花費了很大的時間去等待I/O的完成。 %idle很小說明系統CPU很忙。

 
當你的系統存在IO的問題,可以從以下幾個方面解決

      檢查是否硬體配置過老舊,RAID是否需要擴建,RAID中的硬碟是否有故障。

      系統是否有process咬著I/O資源不放或是很頻繁的進行大量讀寫。

      Oracle中讀取頻繁的table除建索引外,再來就是把這些table存放於不同的tablespace上,避免造成某幾個硬碟讀取特別頻繁。

     查找Oracle中不合理的sql語句,對其進行優化。 


2、關注一下記憶體(常用的指令便是free -mt)

free.jpg  

a = 總記憶體大小
b = 配給 buffers 與 cache 的記憶體大小(包含未用的 buffers 與 cache)
c = 剩下的記憶體大小
e = 配給 buffers 但未用的記憶體大小
f = 配給 cache 但未用的記憶體大小
g = buffers 與 cache 被使用掉的記憶體大小,也就是實際被應用程式用走的
h = 那這個就是實際剩下的記憶體大小

a  = b + c
a  = g + h
g = b  - e  -  f
h = c  + e  + f

buffer 與 cache 的區別:
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.

當你的系統存在IO的問題,可以從以下幾個方面解決
劃給Oracle使用的記憶體不要超過系統記憶體的1/2, 一般Oracle會使用OS記憶體的40%作為SGA,因為Oracle評估OS會使用掉20%的記憶體,剩下的80%折衷取40%
為系統增加記憶體。
如果你的session特別多,而且多為交易時間短的OLTP,可以考慮使用share server。
更新patch,防止記憶體漏洞。


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 史特林 的頭像
    史特林

    史特林研究室

    史特林 發表在 痞客邦 留言(0) 人氣()