調整 NFS 客戶端/伺服器堆棧
我有一個 CentOS 5 VMWare 伺服器通過 NFS 連接到 OpenSolaris 2009.06 機器,該機器保存磁碟映像。我的虛擬機似乎受到慢 IO 的限制,所以我想盡我所能來優化連接。
我不確定在生產系統上測量吞吐量的最佳方法,但一些不科學的測試使用
dd bs=1024k count=400
顯示本地 (OpenSolaris) 寫入 ~1.6GB/s 和遠端 (CentOS) 寫入 ~50MB/s。我想這些比我實際得到的要低,因為目前有 7 個虛擬機正在通過連接執行。目前,兩台機器是直接連接的 gigE,在兩個 NIC 上都啟用了巨型幀 (MTU=9000)。除此之外,沒有進行任何優化。NFS 掛載/導出使用預設值。
我應該從哪裡開始轉動旋鈕以提高性能?
澄清一下,您通過單個 Gb 乙太網連接使用 NFS 獲得 50MB/秒?
主機伺服器正在執行安裝了 VMware Server 的 CentOS,而後者又執行 7 個虛擬機?您選擇 CentOS 和 VMware Server 的組合,而不是 VMware ESXi,這是一個更高性能的解決方案,有什麼特別的原因嗎?
50MB/秒不是很好,但它並不低於你對單個 Gb 網路電纜的期望——一旦你進行了上面提到的 NFS 調整,你可能會看到 70- 80MB/秒。沿線的選項:
“ro,hard,intr,retrans=2,rsize=32768,wsize=32768,nfsvers=3,tcp”
在系統的兩端對您來說可能是合理的。
為了達到以上要求,您需要考慮將網卡組合成對,這應該可以將您的吞吐量提高約 90%。您可能需要支持 802.3ad 的交換機才能通過鏈路聚合獲得最佳性能。
不過我建議的一件事是,您在 OpenSolaris 機器上的 IO 吞吐量聽起來非常高,12 個磁碟不太可能支持 1.6GB/秒的吞吐量,而且這可能會被 Solaris + ZFS 大量記憶體。