Windows-Server-2008-R2

在 VMWare 中執行的 Windows Server 2008 R2 上的磁碟 IO 中斷

  • May 23, 2014

大約一周以來,我們一直在嘗試解決伺服器的問題。直到最近幾天,我們才真正發現問題所在。

只是一些預先的資訊:我們執行一個帶有第 3 方網路主機的虛擬機。我知道他們使用VMWare,但不知道具體是什麼版本。他們昨晚剛剛將我們的 VMWare 工具更新到了最新版本。伺服器作業系統是 Windows Server 2008 R2,並且應該有最新的 Windows 更新。我們將其用作 Web 伺服器,因此它執行 IIS 7.5,我們在此之上執行 Coldfusion 9.0.1。Coldfusion 9 應該使用最新版本的 JDK 6(我認為 Java 7 存在/曾經存在兼容性問題)。

我們看到的是一小段時間,從 30 秒到 2.5 分鐘,伺服器基本上會“停止”。它並沒有真正鎖定,但 CPU 使用率下降到幾乎 0%,並且沒有處理任何 Web 請求。

使用 Windows 性能監視器,我們發現發生這種情況時,磁碟 IO 似乎完全下降。附件是從性能監視器中提取的圖形圖像。

第一張圖顯示了這種情況發生的時間。請注意,磁碟空閒百分比(綠線)降至 0。我假設這意味著磁碟訪問已滿負荷。CPU 下降到接近 0%,偶爾出現峰值。紫色線是磁碟隊列長度,我假設它顯示了系統上待處理的磁碟 IO 操作數。這通常非常低,大約是 1 或 2,通常是 0。當這種現象發生時,它會急劇增加(如果磁碟訪問出現問題,這是有道理的)。

第二張圖顯示了事情何時恢復。CPU 在開始處理 Web 請求隊列和其他積壓的事情時被鎖定,但磁碟統計資訊恢復“正常”。

不是每次,但是當這種情況發生並且中斷時間很長(幾分鐘)時,我們還會在 Windows 系統事件日誌中看到一些警告。源是“LSI_SCSI”,事件 ID 是“129”,一般消息是“已發出重置到設備,\Device\RaidPort0”。

當這第一次發生時,我們認為這與我們的程式碼有關,但在看到這一切發生後,我們覺得這與作業系統或 VM/VMWare 有關。我認為這與負載無關,因為如果是這樣,我認為我們會同時看到高磁碟使用率和高 CPU 使用率。CPU 較低的事實讓我相信程序只是在等待 IO 請求返回時被阻塞。在我寫這篇文章時,我們正在與我們的託管服務提供商合作以解決這個問題,但我想我會在這裡嘗試一下。提前感謝您的幫助!

第一張圖 第一張圖

第二張圖 第二張圖

我知道這是舊的,我們很久以前就修復了它,但在我的個人資料中看到它並想發布答案。

事實證明,我們的託管服務提供商不小心搞砸了我們訂購的升級。它們提供兩層磁碟,一層速度較慢,另一層性能更好。我不知道技術差異是什麼。

我們一直有更高性能的東西,但是當我們上次升級我們的磁碟空間時,技術意外地將我們撞到了較低的層。

在我們的行業中,12 月下旬的流量通常對我們來說較慢,所以這些錯誤直到 1 月份流量(以及磁碟 IO)回升時才開始出現。

無論如何,經過大約兩週的調查和我浪費了無數個小時的時間,我們正在與主機的一位技術人員通話,我們發現了這個小問題。由於它給我們帶來的頭痛,最終獲得了兩個月的免費託管。

您的提供商可能在過載的主機上執行您的虛擬機。如果其他人的虛擬機佔用了磁碟,那麼您將被卡住,直到他們的虛擬機釋放為止。除了製造很多噪音,你無能為力。

引用自:https://serverfault.com/questions/568115