| 參數 | 建議值 | 作用 |
rsize | 32768 (32K) ~ 1048576 (1M) | 讀取最大塊大小,需 Server/Client 同步設定 |
wsize | 同 rsize | 寫入最大塊大小 |
noatime | 啟用 | 不更新檔案存取時間,減少元數據寫入 |
nodiratime | 啟用 | 不更新目錄存取時間 |
hard | 啟用(預設) | Server 掛掉時 Client 無限重試,保證數據一致性 |
intr | 啟用 | 允許信號中斷掛起的 NFS 請求 |
async | 視場景 | Client 端非同步寫入(風險:掉電丟數據),高吞吐場景可用 |
生產環境建議掛載命令
mount -t nfs -o rsize=1048576,wsize=1048576,noatime,nodiratime,hard,intr,vers=3 \
192.168.0.107:/data /data
/etc/fstab 永久生效:
192.168.0.107:/data /data nfs rsize=1048576,wsize=1048576,noatime,nodiratime,hard,intr,vers=3 0 0
效能基準工具推薦
iozone:綜合檔案系統基準測試
fio:靈活的 I/O 負載模擬
nfsstat -c / nfsstat -s:Client/Server 端 RPC 統計
常見坑點
- 版本不匹配:Client/Server 協議版本(vers=3/4/4.1/4.2)需一致,建議顯式指定。
- 防火牆阻攔:NFS 需開放 TCP/UDP 111, 2049 及
rpc.mountd/rpc.statd 動態端口(建議固定端口)。
- 虛擬機測試失真:共享存儲、網路虛擬化導致結果偏差,生產環境必須實測。
- atime 洩漏:高併發讀取場景下,
noatime 能顯著降低元數據鎖爭用。
總結
NFS 調優核心在於調大傳輸單元(rsize/wsize)與減少元數據操作(noatime)。虛擬機環境差異可能不明顯,但生產環境(萬兆網、SSD 存儲、高併發)效果顯著。務必結合 nfsstat 持續觀測 RPC 重傳率、延遲分佈,動態調整參數。