優化NFS的過程
在NFS服務中,我們需要考慮很多,隨著網絡的用戶基礎越來越龐大,網絡資源漸漸復雜緊張。我們都在想方設法來優化我們的設施?,F在我們就來談談優化NFS的相關內容。
優化NFS
調優的步驟:
1、測量當前網絡、服務器和每個客戶端的執行效率.
2、分析收集來的數據并畫出圖表.查找出特殊情況,例如很高的磁盤和CPU占用、已經高的磁盤使用時間
3、調整服務器
4、重復第一到第三步直到達到你渴望的性能
與NFS性能有關的問題有很多,通??梢砸紤]的有以下這些選擇:
WSIZE,RSIZE參數來優化NFS的執行效能
WSIZE、RSIZE對于優化NFS的效能有很大的影響.
wsize和rsize設定了SERVER和CLIENT之間往來數據塊的大小,這兩個參數的合理設定與很多方面有關,不僅是軟件方面也有硬件方面的因素會影響這兩個參數的設定(例如LINUX KERNEL、網卡,交換機等等).
下面這個命令可以測試NFS的執行效能,讀和寫的效能可以分別測試,分別找到合適的參數.對于要測試分散的大量的數據的讀寫可以通過編寫腳本來進行測試.在每次測試的時候最好能重復的執行一次MOUNT和unmount.
time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384
用于測試的WSIZE,RSIZE最好是1024的倍數,對于NFS V2來說8192是RSIZE和WSIZE的最大數值,如果使用的是NFS V3則可以嘗試的最大數值是32768.
如果設置的值比較大的時候,應該最好在CLIENT上進入mount上的目錄中,進行一些常規操作(LS,VI等等),看看有沒有錯誤信息出現.有可能出現的典型問題有LS的時候文件不能完整的列出或者是出現錯誤信息,不同的操作系統有不同的最佳數值,所以對于不同的操作系統都要進行測試.
設定最佳的NFSD的COPY數目.
linux中的NFSD的COPY數目是在/etc/rc.d/init.d/nfs這個啟動文件中設置的,默認是8個NFSD,對于這個參數的設置一般是要根據可能的CLIENT數目來進行設定的,和WSIZE、RSIZE一樣也是要通過測試來找到最近的數值.
UDP and TCP
可以手動進行設置,也可以自動進行選擇.
mount -tNFS-o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP有著傳輸速度快,非連接傳輸的便捷特性,但是UDP在傳輸上沒有TCP來的穩定,當網絡不穩定或者黑客入侵的時候很容易使NFS的 Performance 大幅降低甚至使網絡癱瘓.所以對于不同情況的網絡要有針對的選擇傳輸協議.nfs over tcp比較穩定,nfs over udp速度較快.在機器較少網絡狀況較好的情況下使用UDP協議能帶來較好的性能,當機器較多,網絡情況復雜時推薦使用TCP協議(V2只支持UDP協議).在局域網中使用UDP協議較好,因為局域網有比較穩定的網絡保證,使用UDP可以帶來更好的性能,在廣域網中推薦使用TCP協議,TCP協議能讓優化NFS在復雜的網絡環境中保持最好的傳輸穩定性.可以參考這篇文章:http://www.hp.com.tw/ssn/unix/0212/unix021204.asp
版本的選擇
V3作為默認的選擇(RED HAT 8默認使用V2,SOLARIS 8以上默認使用V3),可以通過vers= mount option來進行選擇.
LINUX通過mount option的nfsvers=n進行選擇.