主頁 > 知識庫 > 關(guān)于AIX掛載NFS寫入效率低效的解決方法

關(guān)于AIX掛載NFS寫入效率低效的解決方法

熱門標簽:硅谷的囚徒呼叫中心 智能手機 檢查注冊表項 使用U盤裝系統(tǒng) 阿里云 網(wǎng)站建設 美圖手機 百度競價點擊價格的計算公式

NFS提供的服務

Mount: 通過在服務端啟用/usr/sbin/rpc.mountd伺服進程,在客戶端使用mount命令,mounted伺服進程是一個RPC來回應客戶端的請求

Remote File access:通過在服務端啟用/usr/sbin/nfsd和在客戶端啟用/usr/sbin/biod,來出來客戶端對文件的請求。但客戶端一個用戶要來讀或?qū)懸粋€在服務器端的文件時,biod伺服進程發(fā)送這個請求到服務端。

Boot parameters: 通過在服務端啟用/usr/sbin/rpc.bootparamd伺服進程來提供無盤SunOS客戶端的啟動參數(shù)。

PC authentication: 通過在服務端啟動/usr/sbin/rpc.pcnfsd來提供PC-NFS的用戶認證服務

一個NFS服務是無狀態(tài)的(stateless),也就是說,NFS的傳輸是原子級的,一個單一的NFS傳輸對應了一個單一完整的文件操作。

背景:

Linux是NFS的Server端,AIX是NFS的Client端(此外,有一個Linux也作為Client端對比測試)。

1.NFS對應的底層設備是閃存卡,本地測試I/O寫性能可達2GB/s;

2.服務器是千兆網(wǎng)卡,F(xiàn)TP測試傳輸可達到100MB/s;

3.AIX成功掛載NFS,dd測試寫入速度只有10MB/s;

4.Linux成功掛載NFS,同樣dd測試寫入速度可達到100MB/s;

說明:以上速度主要是體現(xiàn)數(shù)量級的差異,實際測試會有少許偏差。

具體環(huán)境:

  • NFS Server:RHEL 6.8
  • NFS Client:AIX 6.1、RHEL 6.8

掛載參數(shù)均依據(jù)MOS文檔配置:

Mount Options for Oracle files for RAC databases and Clusterware when used with NFS on NAS devices (文檔 ID 359515.1)

根據(jù)本次實際需求,提煉一下需要配置的參數(shù):

--MOS建議(AIX):
cio,rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,noac,
vers=3,timeo=600

--MOS建議(Linux):
rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,actimeo=0,
vers=3,timeo=600

AIX NFS的掛載參數(shù):

mount -o cio,rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,vers=3,timeo=600 10.xx.xx.212:/xtts /xtts

直接掛載提示如下錯誤:

# mount -o cio,rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,vers=3,timeo=600 10.xx.xx.212:/xtts /xtts
mount: 1831-008 giving up on:
10.xx.xx.212:/xtts
vmount: Operation not permitted.

查資料確認AIX需要額外設置網(wǎng)絡參數(shù):

# nfso -p -o nfs_use_reserved_ports=1

再次嘗試掛載成功:

mount -o cio,rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,vers=3,timeo=600 10.xx.xx.212:/xtts /xtts

可dd測試的速度非常不理想,只有10MB/s:

--test performance; AIX NFS
# time dd if=/dev/zero of=/xtts/test-write bs=8192 count=102400
102400+0 records in.
102400+0 records out.

real 0m43.20s
user 0m0.79s
sys  0m5.28s
# time dd if=/xtts/test-write of=/dev/null bs=8192 count=102400
102400+0 records in.
102400+0 records out.

real 0m30.86s
user 0m0.84s
sys  0m5.88s

所有參數(shù)都是根據(jù)實際需求,按照MOS的建議設置的。有什么問題嗎?

  • 嘗試去掉cio參數(shù)測試,發(fā)現(xiàn)結(jié)果幾乎沒變化;
  • 嘗試去掉hard參數(shù)測試,發(fā)現(xiàn)結(jié)果幾乎沒變化;
  • 嘗試協(xié)議從tcp改為udp測試,發(fā)現(xiàn)結(jié)果幾乎沒變化;

幾乎能試的參數(shù)都試了,結(jié)果都不理想,馬上都準備協(xié)調(diào)資源找主機工程師定位了。

此時,靈感乍現(xiàn),突然想到一個可能性。有沒有可能AIX上的NFS限制了單個進程的I/O吞吐能力?帶著這個猜測,進行并行測試:

開5個窗口同時開始dd:

time dd if=/dev/zero of=/xtts/test-write1 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write2 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write3 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write4 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write5 bs=8192 count=102400

驚喜的發(fā)現(xiàn)5個窗口都在55s同時完成,這相當于800M*5=4000M,都在55s完成,每秒達到72MB/s,通過這種并行的方式已滿足提升效率的需求。

而且看起來只要繼續(xù)嘗試多開窗口測試,基本也能達到網(wǎng)絡上限100MB/s(千兆網(wǎng)卡限制)。

附:測試同樣的NFS掛載到另一臺Linux服務器上,無需并行,dd寫入速度就可達100MB/s,這也是之前影響自己思考的因素。
Linux NFS的掛載參數(shù):

# mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 10.xx.xx.212:/xtts /xtts

Linux NFS的測試結(jié)果:

--test performance; Linux NFS
# dd if=/dev/zero of=/xtts/test-write bs=8192 count=102400
102400+0 records in
102400+0 records out
838860800 bytes (839 MB) copied, 6.02451 s, 139 MB/s
# dd if=/xtts/test-write of=/dev/null bs=8192 count=102400
102400+0 records in
102400+0 records out
838860800 bytes (839 MB) copied, 8.55925 s, 98.0 MB/s

對AIX不熟悉,沒有進一步深究底層原理。開始解決問題過程中的主要困惑在于,為何Linux作為client時,無需并行就可以dd測試達到100MB/s的速度,使自己陷入了固有思維中。從這件事情得到的思考是:有些時候,要跳出常規(guī)思維去思考方可有所突破。

最后把NFS Server端本地測試的結(jié)果也貼出來,感嘆下閃存卡的I/O能力:

# dd if=/dev/zero of=/dev/test-write2 bs=8192 count=1024000
1024000+0 records in
1024000+0 records out
8388608000 bytes (8.4 GB) copied, 4.19912 s, 2.0 GB/s

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

標簽:湘潭 通遼 湖北 黃山 山南 煙臺 賀州 懷化

巨人網(wǎng)絡通訊聲明:本文標題《關(guān)于AIX掛載NFS寫入效率低效的解決方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266