时间:2021-07-01 10:21:17 帮助过:27人阅读
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
标签:oracle 等待事件之 free buffer waits