伺服器掛起文件副本
我們的其中一台伺服器出現問題。當我們複製更大的文件時(大意味著 50MB 或更大),複製操作(C:\ 到 C:)正常啟動,但隨後開始滯後,下降到 100kb/s 並使整個伺服器掛起(我們的應用程序無法再從 SQL Server 返回結果,因此應用程序為使用者掛起)。
Intel RST 在 SMART 上顯示全綠色。以下是系統規格:
- 伺服器: HPE ML10
- 儲存: RAID5 配置中的 3x HP 3TB
- 作業系統: Windows Server 2012 R2
- **伺服器角色:**域控制器、應用程序伺服器(SQL Server 和 .NET 應用程序)
- **儲存設置:**條帶大小:128KB,寫入記憶體緩衝區刷新:啟用,記憶體模式:關閉,物理和邏輯扇區大小:512 字節
我不是伺服器專家,所以我不確定我是否正確設置了這些東西。這裡可能是什麼問題?
編輯:我不是這些事情的專家(開發人員)。所以也許我做錯了一些簡單的事情。
EDIT2: http: //imgur.com/a/NNgDY磁碟寫入性能極差。但是當我使用 Windows 資源管理器複製時,總不會掛起。我猜懸垂的資源管理器堵塞了消息泵,堵塞了系統。遷移到 RAID1/10 能否解決您認為的問題?
如果我正確解釋“記憶體模式:關閉”,那麼寫入性能很糟糕是完全可以理解的。檢查從 RAID複製/讀取(到網路或 NUL)是否是我的問題或複制/寫入RAID - 我的猜測是正確的,只有寫入 RAID 是一種痛苦。
RAID5 是分佈式的 - 每個條帶由(在您的情況下)三個段組成:data1、data2 和 parity12。現在,當一些數據寫入數組時,它不能只寫入數據段,因為奇偶校驗不再匹配。
如果 data1 被寫入/更改,控制器需要:
- 讀取數據2,重新計算奇偶校驗12,寫入數據1,寫入奇偶校驗12(對於小數組)
- 讀取舊數據1,讀取奇偶校驗12,從奇偶校驗12中刪除舊數據1奇偶校驗,用新數據1重新計算奇偶校驗12,寫入數據1,寫入奇偶校驗12(對於更大的數組)
所以,只要有變化,控制器操作就會放大三倍!如果這些無法記憶體,則每次寫入都會導致執行三個操作,並且您的應用程序需要等待。使用記憶體,可以省略很多讀寫操作,性能損失會小很多。
這種寫操作放大的唯一例外是一次寫入整個條帶:只需從緩衝區中獲取 data1 和 data2,計算 parity12 並寫入所有三個段。這只是放大了 1.5 倍。但是,為了能夠將所有傳入數據組合成完整的條帶,您需要能夠對數據進行排隊。你猜怎麼著,你又需要記憶體了。
簡而言之:如果您使用 RAID5 或 RAID6,您絕對需要記憶體- 這不是奢侈品。記憶體太少甚至根本沒有記憶體會影響您的性能。如果它是具有可配置記憶體的軟體或託管 RAID,請留出至少 512 MB,最好是 1 或 2 GB,它會“飛起來”。具有三個驅動器的 RAID5 不會產生性能奇蹟,但它可以正常工作。
編輯:HP ML10 G9 具有集成晶片組的 Intel RST SATA RAID 控制器 - 主機 RAID。根據使用的確切模型和控制器,記憶體應該在某處可配置。