- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章waits
本章內容 :
[ 號誌 2
[ Wait的統計數據
[ 參考指南
W a i t s
在一個 O racleinstance中 ,有許多行程 (或單一行程的多個執行緒 )是相
互運作的 。為了彼此間的通力合作 ,行程必須能夠溝通 ,而其 中一個主要
的溝通方式是透過號誌 (semaphore)。號誌即為信號 (signal)。它有點像
鐵路的信號 ,告知火車該停車 、候車 ,以及何時行駛 。基於下列因素 ,
Oracle的伺服器行程 (serverprocess)經常必須停下來等候 :
有時是因為無可用資源 。
有時是因為沒有工作可做 。
有時是 因為它 們得等 待另一 個伺服器 行程執 行必須 先完成 的工
作 。
號誌會讓 O racle的伺服器行程停下來並等待 ,然後在行程需要繼續進行
原先的工作時 ,通知行程 。
9
1 0 / 第二章
號誌
每一個 Oracle的伺服器行程都有一個號誌 。行程會在無可用資源 ,沒有
工作可執行 ,或有必須先行執行的工作時 ,等候本身的號誌 。一旦資源被
釋放 ,或有工作可做 ,或必須先執行的工作已完成時 ,其號誌會以信號的
方式通知 (post)行程 ,以停止等待 。
例如 ,當一個使用者行程準備將重做 (redo)資訊拷貝到重做 日誌緩衝區
(redologbuffer)時 ,LGWR (LogWriter process ,日誌寫入行程 )可能
因為當下沒工作可做 ,正等候其號誌 。當使用者下達 commit (確認 ,完
成交易的執行 )時 ,LGWR 必需將 redo及 commit記號 (marker)寫入日
誌檔 (此時使用者 尚在等待 中 )。為了完成這件事 ,使用者行程會通知
L GWR 的號誌 ,告知 LGWR 不必等了 ,因為 目前已有工作要做 。接著 ,
使用者行程會等待 自身號誌 。當 日誌檔的 I/O 完成時 ,LGWR 便會通知使
用者行程的號誌 ,告訴它現在可以開始下一個交易 ,因為 commit操作已
完成 。接著 ,L GWR 會再度等待本身號誌 ,因為它手上已無工作了 。
另一個例子是 :行程 A 想更新一筆資料列 ,但發現行程 B 尚未 commit
先前對該筆資料列的更新 ,因此 ,行程 A 必須等待行程 B 的 commit 。為
了辦到這件事 ,行程 A 必須等待本身號誌 。當行程 B commit時 ,它會通
知行程 A 的號誌 ,告知行程 A ,現在可以更新該筆資料了 。
號誌的機制
號誌屬於作業系統的機制 。當一個 Oracle行程在等待本身號誌時 ,作業
系統並不會將該行程列入 C PU 的排程 (schedule)。以作業系統的術語來
說 :行程被堵塞 (blocked),而非可執行 (runnable)狀態 。當號誌被通
知時 ,該行程的作業系統狀態會從堵塞轉為可執行 ,並被列入排程 ,以便
儘快執行 。
有些作業系統支援超過一種的號誌 。SystemV 的號誌最為普遍 。System
V 的號誌之資料結構 ,為核心記憶體中的固定陣列 (fixedarray),其陣列
大小由 SE MMNS 核心參數所控制 。行程必須用 s e m o p 系統呼叫 ,來通
知或等待號誌 。因為號誌被實作於作業系統的核心 內 ,所以 ,SystemV
的號 誌承受了因大量且不必 要的系統 呼叫 ,所帶 來環境切 換 (context
switch)的負擔 ,以及 因存取核心資料結構的有序化 (serialization)需
求 ,而導致的低延展性 。
/ 1 1
W a i t s
為求更好的效能及延展性 ,許多作業系統支援了其它不 同的號誌操作 。這
些號誌被實作於虛擬裝置驅動程式 (pseudodevicedriver)中 ,稱為 post-
waitdriver (「通知 - 等待」驅動程式
文档评论(0)