
我的設定:
來源伺服器和目標伺服器(安裝在 M1000e Dell 機箱中):
- Dell Poweredge M620(刀鋒伺服器)
- 2 個 Intel E5-2650 @ 2GHz 處理器
- 192GB 記憶體(DDR3,1333Mhz
- Perc H310 Raid 控制器(每插槽 6Gbe)
- 2 個 1.7TB SSD (SATA) 硬碟 (RAID-0)
2x 10Gbe NIC(MS-Team、獨立於交換器、動態、所有適配器均處於活動狀態)
Windows 2012 R2(預設安裝)
系統管理頁面文件
伺服器連接到內部機箱的 Force10 MXL 10Gb 交換機
配置巨型資料包(NIC 和交換器連接埠)
使用案例:
當在來源伺服器和目標伺服器之間複製(Windows 複製)一個大檔案(超過 200GB)時(無論在哪個方向發生),複製都會以大約 1GB/s 的穩定傳輸速率開始(即使我是預期約為2GB /s),然而,在傳輸過程中的某個地方,它會下降到幾MB/s(!)。
請參閱下圖以獲得更清晰的視圖
看起來 RAM 正在影響我的複製操作。
它如何以及為什麼會影響它?
答案1
- 伺服器之間的頻寬為10Gbit/s。
- SSD 的頻寬為 6Gbit/s,其中約 4Gbit 為淨寫入速度
因此,在第一階段,檔案資料以接近 10Gbit/s 的速度進入,其中 4Gbit/s 移動到磁碟,而 4Gbit/s 保留在快取中。
大約之後。幾百秒後,一半的快取已滿,因此 Windows 開始限制傳輸,但傳入的資料加上快取刷新仍然超出了 SSD 的處理能力。這會導致更多的快取填充。
當可用 RAM 最終達到下限(或髒快取大小達到上限)時,Windows 會將傳輸限製到接近零,以允許快取刷新趕上。
當所有髒數據都被移動後,傳輸速度將再次加快並達到平衡(除非傳輸結束)。
要移動大文件,最好使用使用文件寫入的軟體O_DIRECT
,當然 Explorer 不這樣做。