標籤:oracle 等待事件之 free buffer waits
free buffer waits
官網解釋:
This wait event indicates that a server process was unable to find a free buffer and has posted the database writer to make free buffers by writing out dirty buffers. A dirty buffer is a buffer whose contents have been modified. Dirty buffers are freed for reuse when DBWR has written the blocks to disk.
解釋:
此等待事件表示伺服器處理序無法找到可用的buffer,並通過寫出髒buffer來建立空閑緩衝區。
髒buffer指的的那些內容被修改的塊兒,當DBWR將塊寫入磁碟時,可以釋放髒的緩衝區以供重用。
Causes:
DBWR may not be keeping up with writing dirty buffers in the following situations:
The I/O system is slow.
There are resources it is waiting for, such as latches.
The buffer cache is so small that DBWR spends most of its time cleaning out buffers for server processes.
The buffer cache is so big that one DBWR process is not enough to free enough buffers in the cache to satisfy requests.
Actions:
If this event occurs frequently, then examine the session waits for DBWR to see whether there is anything delaying DBWR.
如果此事件頻繁發生,則檢查會話是否等待DBWR查看是否有任何延遲DBWR。
解釋:
當一個會話將資料區塊從磁碟讀到記憶體中時,它需要找到閒置記憶體空間來存放這些資料區塊,
當記憶體中沒有閒置空間時,就會產生這個等待;
會話在做一致性讀時,需要構造資料區塊在某個時刻的前映像( image),
此時需要申請記憶體來存放這些新構造的資料區塊,但記憶體中無法找到這樣的可用記憶體塊。
當資料庫中出現比較嚴重的 free buffer waits 等待事件時,可能的原因是:
(1)database buffer cache 太小,
(2)導致空閑空間不夠,比如記憶體中的髒資料太多, DBWR 無法及時將這些髒資料寫到磁碟中以釋放空間
本文出自 “Linux Oracle MariaDB” 部落格,請務必保留此出處http://wangergui.blog.51cto.com/8504247/1912951
Oracle 等待事件之 free buffer waits