文章編號: 897284 - 上次校閱: 2009年8月5日 - 版次: 3.0 在 SQL Server 2000 SP4 中和更新版本中的診斷協助偵測停止並停留 I/O 作業
在此頁中結論資料庫管理系統 (DBMS) 如 SQL Server 依賴時刻表的檔案輸入和輸出 (I/O) 作業。 任何一種下列項目可能會建立停留或停止 I/O 問題。這些問題可以快速地有不利的影響 SQL Server 回應速度和效能上:
資訊訊息的說明摺疊此表格
http://technet.microsoft.com/en-us/library/cc966500.aspx
(http://technet.microsoft.com/en-us/library/cc966500.aspx)
其他相關資訊停留的 I/O 與停止的 I/O停留的 I/O停留的 I/O 被定義為未完成的 I/O 要求。 經常,停留的 I/O 是停留的 IRP。若要解決停留的 I/O 條件,您通常必須重新啟動電腦或執行類似的動作。停留的 I/O 狀況通常會指示下列其中:
停止的 I/O停止的 I/O 被定義為不會完成的 I/O 要求。不過,I/O 作業需要過多的時間來完成。停止的 I/O 行為通常是由於下列原因所造成:
SQL Server 停止 I/O 與卡住 I/O 錄製和報告Microsoft SQL Server 支援處理許多情況下每年涉及停留或停止 I/O 問題。 稍後所述,這些 I/O 問題出現在不同的方式。I/O 問題是一些最困難的問題診斷和偵錯。I/O 問題需要大量的時間和資源偵錯從 Microsoft 及客戶。報告的功能已經加入至 SQL Server 2000 SP4 和更新版本中可大幅減少所需來識別 I/O 問題的時間。報告] 及 [I/O 要求錄音的設計是每個檔案為基礎。偵測和報告停止並停留 I/O 要求是兩個不同的動作。 錄製有兩個位置,在 SQL Server 中記錄的動作會發生的地方。在哪些錄音中的第一個位置,就會發生,是實際完成 I/O 作業。 如果 I/O 要求需要超過 15 秒鐘才能完成,就會發生在記錄作業。 延遲寫入器執行時,就會發生哪些錄音中的第二個位置,為。當執行延遲寫入器時,延遲寫入器會檢查所有擱置中的資料,而且所有擱置中的記錄檔檔案 I/O 要求。如果超過 15 秒臨界值是資料錄的作業就會發生。報告報告發生在分開的是 5 分鐘或更多的時間間隔。報告發生於在檔案上進行下一個 I/O 要求。 如果一個記錄動作發生,而且 5 分鐘或更多有自從上次報告發生,資訊摘要 > 一節所描述的訊息寫入 SQL Server 錯誤記錄檔。15 秒臨界值不是可調整的。不過,您可以使用追蹤旗標 830 停用停止與停留 I/O 偵測,但我們不建議您這樣。 當 SQL Server 啟動時,即停用偵測,使用-T830 啟動參數。使用啟動參數將會停用偵測每次啟動 SQL Server-T830。若要停用目前正在執行的 SQL Server 執行個體的偵測,使用下列的陳述式: dbcc traceoff 830 (-1) 此設定才有效的 SQL Server 處理序的生命週期。 附註I/O 要求,會變成延遲或卡住只報告一次。如果訊息報告 10 個 I/O 要求的延遲,那些 10 報告將不會發生一次。如果下一個訊息報告 15 I/O 要求的延遲,就表示有成為延遲 15 新的 I/O 要求。 追蹤 I/O 要求封包 (IRP)讀取和寫入資料,SQL Server 會使用標準的 Microsoft Windows API 呼叫。比方說 SQL Server 會使用下列功能:
http://support.microsoft.com
(http://support.microsoft.com/)
附註 核心偵錯可能很具侵入性的程序,因為核心偵錯可以要求您停止系統在完成偵錯動作。 我們建議您查看是否有任何更新適用於下列項目:
系統效能與查詢計劃動作整體系統效能可以 I/O 處理中扮演關鍵角色。當您調查停止或停留 I/O 作業的報表時,應該請系統的一般健全狀況考量。過多負載可以導致整體的系統很慢。這包括 I/O 處理。問題發生時系統的行為可以則在判斷造成問題的根本原因的關鍵因素。比方說是否 CPU 使用率變高或問題發生時,保持高 CPU 使用率,這種行為可能表示系統上的程序正在使用這麼多的 CPU 其他處理程序會被造成不利影響。效能計數器若要監視的 I/O 效能,檢查下列效能計數器的特定的 I/O 路徑資訊:
小心與效能計數器,因為 SQL Server 會完整善用大量發送磁碟佇列長度的非同步 I/O 功能。因此,較長磁碟的佇列長度單獨不會指出問題。 Windows 系統監視器中,您可以檢閱計數器 」 實體磁碟: 磁碟位元組/秒 」 每個受影響的磁碟和比較計數器的活動的速率 」 處理程序: IO 資料位元組數/秒 」 及 「 處理程序: IO 其他的位元組/秒 」 每個處理程序來識別是否一組特定的處理程序會產生過多的 I/O 要求。有各種其他 I/O 相關的 [處理中可用的計數器物件,可顯示更細微的資訊。如果您判斷 SQL Server 執行個體是負責在伺服器上的過多 IO 負載,檢視上的 「 索引和平行處理原則 」 的下一節。偵測和解決 I/O 瓶頸詳細探討,檢閱 [MSDN 白皮書 Troubleshooting Performance Problems in SQL Server 2008 (http://msdn.microsoft.com/en-us/library/dd672789.aspx) 中的 「 I/O 瓶頸 」 一節或 Troubleshooting Performance Problems in SQL Server 2005 (http://technet.microsoft.com/en-us/library/cc966540.aspx) ]。 索引和平行處理原則經常,高速量 I/O 的發生是因為索引是遺失。這種行為可以大量發送 I/O 路徑。傳遞具有該索引開啟精靈 (ITW) 可能有助於解決系統上的 I/O 壓力。如果查詢受惠於索引而不是從資料表掃描或或許甚至使用排序或雜湊,系統可以取得下列優點:
從 Microsoft SQL Server 支援的實用範例下列範例有由 Microsoft SQL Server 支援及平台擴大支援被處理。 這些範例被為了提供參照框架,並說明集您期望約停止和卡住 I/O 情況和有關系統可能會受到影響或可能的方式回應。 沒有特定的硬體或驅動程式會造成任何特定風險或增加的風險透過另一個集合。所有系統都都在這方面是相同的。範例 1: A 記錄檔寫入卡住 45 秒鐘,SQL Server 記錄檔案寫入嘗試定期變得卡住約 45 秒。 記錄檔寫入未及時完成。建立領導 30 秒用戶端逾時的封鎖條件這種行為。應用程式送出到 SQL Server 認可並認可變得為擱置中的記錄檔寫入卡住。這種行為會造成查詢繼續持有鎖定,並封鎖來自其他用戶端的連入要求。 然後,其他用戶端啟動逾時時間。這而且問題,因為應用程式不是設計來復原開啟的交易時發生查詢逾時。 這會建立數百個開啟的交易已持有鎖定。因此,嚴重的封鎖情況發生。 如更多有關交易處理及封鎖,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項: 224453?
(http://support.microsoft.com/kb/224453/
)
瞭解並解決 SQL Server 7.0 或 2000年封鎖問題 應用程式服務使用連接共用的網站。為更多連線變得封鎖的網站就會建立更多連線。這些連線變得封鎖並週期繼續。大約 45 秒之後記錄檔寫入完成。但是,依此時間數百個的連線已備份。封鎖問題導致幾分鐘的復原時間,SQL Server,以及應用程式。結合應用程式的問題時停止的 I/O 條件會有非常負面的影響系統上。 解決方案問題已追蹤到主機匯流排介面卡 (HBA) 驅動程式中停留的 I/O 要求。 電腦必須具有容錯移轉支援多個 HBA 卡。 當一個 HBA 已背後,或已不通訊與存放區域網路 (SAN) 時,"重試之前容錯移轉 」 逾時值已設定為 45 秒。 時超過逾時,所以 I/O 要求被路由到第二個 HBA。第二個 HBA 處理該要求,並快速地完成。為了防止這類停車格條件,硬體製造商所建議"重試之前容錯移轉 」 設定值為 5 秒。範例 2: 篩選器驅動程式介入許多防毒軟體程式及備份產品使用 I/O 篩選器驅動程式。 這些 I/O 篩選器驅動程式成為 I/O 要求堆疊中的一部份,它們擁有 IRP 要求的存取。 從建立 Bug 的各種問題卡住 I/O 條件或停止中篩選器驅動程式實作的 I/O 條件,已經看過 Microsoft 產品支援服務。一個這類條件已備份處理允許備份備份發生時,原先開啟的檔案篩選器驅動程式。系統管理員必須包含 SQL Server 資料檔目錄在檔案的備份選項。 備份發生備份會嘗試在備份開始的時間收集檔案的正確的影像。 如此一來延遲 I/O 要求。I/O 要求所允許只完成一次一個,因為它們已處理由軟體。 當啟動備份時,因為 [I/O SQL Server 被迫完成一次一個,而大幅捨棄 SQL Server 效能。 複合問題,"一次一個 「 邏輯是使得 I/O 作業不能以非同步方式執行。因此,SQL Server 預期張貼 I/O 要求,並繼續時, 在背景工作陷入讀取或寫入呼叫直到 I/O 要求完成為止。 處理工作例如 SQL Server 預先讀取已有效地根據停用篩選器驅動程式的動作。此外,篩選器驅動程式中的另一個 Bug 處於 」 一次一個"動作程序,備份完成時,即使。 還原 SQL Server 效能唯一的方法是關閉,然後重新開啟資料庫] 或 [,讓檔案控制代碼已釋放和重新取得沒有篩選器驅動程式互動的情況下,重新啟動 SQL Server。 解決方案如果要解決這個問題,SQL Server 資料檔案已移除檔案的備份程序。軟體製造留"一次 」 模式中的檔案的問題也更正。範例 3: 隱藏錯誤許多較高的結束系統有多頻道的 I/O 路徑來處理負載平衡或類似的活動。 Microsoft 產品支援已經找到負載平衡的軟體 I/O 要求失敗,但軟體未正確處理錯誤狀況的問題。軟體可以試著無限的重試次數。 I/O 作業就會變成卡住和 SQL Server 無法完成指定的動作。 更像記錄檔寫入已稍早所述的條件,這類條件 wedges 系統之後,就可能會發生許多不佳的系統行為。解決方案如果要解決這個問題,重新啟動 SQL Server 通常需要。不過,有時您必須重新啟動作業系統以還原處理。我們也建議您從 I/O 廠商取得軟體更新。範例 4: 遠端儲存體、 左右反轉和 Raid 磁碟機許多系統使用鏡像,或採用類似的步驟,以避免資料遺失。 有些使用鏡像的系統是基礎的軟體,有些是基礎的硬體。 通常這些系統的產品支援服務所發現的情況是增加延遲時間。當 [I/O I/O 視為完成之前必須完成到鏡像時,就會發生整體的 I/O 時間的增加。針對遠端鏡像安裝可以成為涉及網路重試次數。當磁碟機失敗發生重建 RAID 系統 I/O 模式可以也被中斷。 解決方案嚴格的組態設定都需要降低延遲至鏡像或 RAID 重建作業。範例 5: 壓縮Microsoft 不支援,Microsoft SQL Server 7.0 或 Microsoft SQL Server 2000 資料檔上和記錄檔的壓縮磁碟機。 NTFS 壓縮不安全的 SQL Server,因為 NTFS 壓縮中斷寫入目標記錄 (WAL) 通訊協定。 NTFS 壓縮也需要增加的處理每一個 I/O 作業。 壓縮會建立"一次一個 」 類似,會導致嚴重的效能問題發生的行為。解決方案如果要解決這個問題,解壓縮資料和記錄檔。其他資料點sysprocesses 系統表格中所提供的等候型別資訊很有幫助診斷 I/O 瓶頸。 緩衝區 I/O 閂鎖等候型別和 writelog 等待是索引鍵的標記,以在調查路徑的 I/O 效能。如等待類型的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]: 822101?
(http://support.microsoft.com/kb/822101/
)
在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 資料表中的 < waittype 和 lastwaittype 資料行的描述 ?考231619?
(http://support.microsoft.com/kb/231619/
)
如何使用 「 SQLIOStress 」 公用程式,如 SQL Server 的磁碟子系統的壓力 826433?
(http://support.microsoft.com/kb/826433/
)
加入至偵測未回報的 I/O 問題的其他 SQL Server 診斷 230785?
(http://support.microsoft.com/kb/230785/
)
SQL Server 7.0、 SQL Server 2000 和 SQL Server 2005 記錄和資料儲存體演算法擴充資料可靠性 這篇文章中的資訊適用於:
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:897284?
(http://support.microsoft.com/kb/897284/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯 |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


回此頁最上方
