共用方式為


在命令介面中使用 Troubleshoot-DatabaseLatency.ps1 指令碼管理資料庫延遲

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2016-11-28

Microsoft System Center Operations Manager 2007 使用 Troubleshoot-DatabaseLatency.ps1 指令碼來偵測與修正資料庫上的高度延遲。您可以使用工作排程器執行此指令碼來建立排定的工作。資料庫延遲是由幾個問題所造成,包括下列問題:

  • 磁碟損毀導致的磁碟延遲   磁碟的讀取或寫入延遲非常高時,如果延遲持續很長一段時間,則可能是由於磁碟損毀所造成。

  • 網域控制站延遲   在回應 LDAP 搜尋查詢時,網域控制站可能呈現出長時間延遲。

  • 高使用者工作負載   進行沈重作業的單一使用者 (或一組使用者) 可能會造成資料庫延遲。

Troubleshoot-DatabaseLatency.ps1 指令碼可執行以下動作:

  1. 檢查資料庫延遲是否高於延遲閾值 (如 LatencyThreshold 參數所指定)。預設值為 70 毫秒。

  2. 檢查磁碟的每秒傳輸率是否小於 DiskReadRateThreshold 效能計數器,以及磁碟的每個傳輸的秒數率是否大於 DiskReadLatencyThreshold 效能計數器。若是如此,該指令碼會決定由於磁碟低於低負載條件,但呈現出高度延遲,因此必須更換。

  3. 檢查單一使用者在過去 10 分鐘期間是否使用一個以上的執行緒且時間超過 TimeInServerThreshold 參數指定的值。若是如此,該使用者可能造成高度延遲,而且會因而隔離該使用者的信箱。該使用者的信箱會隔離六小時,在此期間該使用者將無法存取電子郵件。

Troubleshoot-DatabaseLatency.ps1 指令碼中使用的預設設定在 StoreTSConstants.ps1 指令碼中定義。

注意事項附註:
必須從所在資料夾中執行指令碼。根據預設,與 Exchange 2010 一起安裝的指令碼會安裝在 C:\Program Files\Microsoft\Exchange Server\V14\Scripts。命令介面不會自動載入指令碼。若要從本機檔案中執行指令碼,您必須在所有指令碼之前加上 ".\"。例如,若要執行 SampleScript.ps1 指令碼,請輸入 .\SampleScript.ps1。若要執行指令碼並指定預設安裝路徑,請輸入 "C:\Program Files\Microsoft\Exchange Server\V14\Scripts\SampleScript.ps1"。如需詳細資訊,請參閱使用 Exchange 管理命令介面撰寫指令碼

使用 Troubleshoot-DatabaseLatency.ps1 指令碼

信箱權限主題中的您必須已獲指派權限,才能執行此程序。若要查看您需要的權限,請參閱「信箱資料庫」項目。

以下參數語法集和表格列出了您可用於偵測和疑難排解資料庫延遲問題的參數。

Troubleshoot-DatabaseLatency.ps1 -MailboxDatabaseName <DatabaseID> [-LatencyThreshold <1-200>] [-TimeInServerThreshold <1-600000>] [-Quarantine <switch>] [-MonitoringContext <switch>]
參數 必要 描述

MailboxDatabaseName

必要

MailboxDatabase 參數可指定您監視哪個信箱資料庫的資料庫延遲。

此參數接受下列值:

  • GUID

  • 辨別名稱 (DN)

  • 資料庫名稱

LatencyThreshold

選用

LatencyThreshold 參數以毫秒為單位指定資料庫可閒置多少時間之後才視為延遲。

預設值為 70 毫秒。

MonitoringContext

選用

MonitoringContext 參數會指定命令結果是否寫入應用程式事件記錄檔。如果您不指定此值,則會將事件記錄檔寫入事件檢視器中的以下位置:

[事件檢視器]>[應用程式與服務記錄檔]>[Microsoft]>[Microsoft-Exchange-疑難排解員/作業]

您不需要利用此參數指定任何值。

Quarantine

選用

Quarantine 參數可指定將會隔離造成高度延遲的大用量使用者。如果您不指定此參數,則不會隔離使用者。

您不需要利用此參數指定任何值。

TimeInServerThreshold

選用

TimeInServerThreshold 參數可指定 Exchange 儲存使用執行緒的任何使用者活動針對單一信箱每分鐘可花多少時間 (以秒為單位),然後才將該信箱視為危及資料庫的健康狀況。秒數的計算是加總在 Exchange 儲存內所花費,所有執行緒代表信箱而工作的時間 (於 Get-StoreUsageStatistics Cmdlet 報告的期間)。每分鐘的工作秒數是此總數除以 Get-StoreUsageStatistics Cmdlet 所報告的期間 (預設值為 10 分鐘)。

例如,如果您將此參數設為 80 秒,而單一使用者在 10 分鐘期間內使用一個以上執行緒超過 80 秒,則會傳回事件錯誤。如果您指定 Quarantine 參數,則會傳回事件錯誤,而且也會將使用者的信箱隔離六小時。

預設值為 200 秒。

範例

此範例顯示如何使用以下設定執行 Troubleshoot-DatabaseLatency.ps1 指令碼:

  • LatencyThreshold 參數設為 100 毫秒。如果資料庫延遲超過 100 毫秒,則會傳回錯誤。

  • TimeInServerThreshold 參數設為 80 秒。如果單一使用者在 10 分鐘期間使用一個以上的執行緒超過 80秒,則會隔離該使用者。

.\Troubleshoot-DatabaseLatency.ps1 -MailboxDatabaseName MBD01 -LatencyThreshold 100 -TimeInServerThreshold 80 -Quarantine
注意事項附註:
此範例顯示如何手動執行一次命令。若要產生疑難排解員有效監視資料庫所需的資料,您必須以固定的時間間隔執行此命令。建議您使用 Microsoft Windows 作業系統中的工作排程器來設定此工作。如需詳細資訊,請參閱工作排程器概觀

檢視資料庫延遲疑難排解員輸出

在事件檢視器中,會在以下位置提供 Troubleshoot-DatabaseLatency.ps1 指令碼的結果:[事件檢視器]>[應用程式與服務記錄檔]>[Microsoft]>[Microsoft-Exchange-疑難排解員/作業]

例如,以下表示事件識別碼 5111 的輸出。如果指令碼執行成功,沒有出現錯誤,則會傳回此輸出。

資料庫延遲疑難排解員已偵測到資料庫 MBD01 的目前延遲 1 毫秒是在 100 毫秒閾值以內。

下表顯示事件識別碼、事件的描述以及採取的動作 (如果需要)。

注意事項附註:
此表格中的描述是這些事件中可能包括的資訊的範例。
事件識別碼 描述 動作

5110

資料庫延遲疑難排解員在資料庫 MBD01 上啟動。

僅供參考。不需要採取任何動作。

5111

資料庫延遲疑難排解員已偵測到資料庫 MBD01 的目前延遲 30 毫秒是在 70 毫秒閾值以內。

僅供參考。不需要採取任何動作。

5411

由於信箱中的異常活動,資料庫延遲疑難排解員已隔離資料庫 MBD01 上的使用者 f3bb8007-b6d1-45f5-b748-211d66fa43f6。如果問題持續發生,將需要手動操作。

警告事件:繼續監視。

5412

由於信箱中的異常活動,資料庫延遲疑難排解員已識別資料庫 MBD01 上的使用者 f3bb8007-b6d1-45f5-b748-211d66fa43f6 有問題。由於並未指定 Quarantine 參數,因此並未隔離該使用者。如果問題持續發生,將需要手動操作。

警告事件:繼續監視。

5710

資料庫延遲疑難排解員已偵測到資料庫 MBD01 的磁碟延遲有異常。您必須更換該磁碟。

錯誤事件您必須更換該磁碟。請連絡硬體製造商以取得更換指示。

5712

資料庫延遲疑難排解員已偵測到資料庫 MBD01 有高度 RPC 平均延遲,但無法判斷原因。需要手動操作。

錯誤事件無法判斷延遲原因。您應該建立傾印檔案並加以分析,以判斷問題原因。

對於 Windows Vista、Windows 7 或 Windows Server 2008,請參閱如何建立使用者模式程序傾印檔案。

對於 Windows Server 2003 或更早版本,請參閱如何使用 Userdump.exe 工具建立傾印檔案。

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。