AIX掛載NFS寫入效率低效解決

2021-09-07 20:18:40 字數 3397 閱讀 7871

背景:linux是nfs的server端,aix是nfs的client端(此外,有乙個linux也作為client端對比測試)。

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

具體環境:

nfs server:rhel 6.8

nfs client:aix 6.1、rhel 6.8

掛載引數均依據mos文件配置:

根據本次實際需求,提煉一下需要配置的引數:

--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的掛載引數:

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需要額外設定網路引數:

# 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

所有引數都是根據實際需求,按照mos的建議設定的。有什麼問題嗎?

幾乎能試的引數都試了,結果都不理想,馬上都準備協調資源找主機工程師定位了。

此時,靈感乍現,突然想到乙個可能性。有沒有可能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

驚喜的發現5個視窗都在55s同時完成,這相當於800m*5=4000m,都在55s完成,每秒達到72mb/s,通過這種並行的方式已滿足提公升效率的需求。

而且看起來只要繼續嘗試多開視窗測試,基本也能達到網路上限100mb/s(千兆網絡卡限制)。

附:測試同樣的nfs掛載到另一台linux伺服器上,無需並行,dd寫入速度就可達100mb/s,這也是之前影響自己思考的因素。

linux nfs的掛載引數:

# 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的測試結果:

--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的速度,使自己陷入了固有思維中。從這件事情得到的思考是:有些時候,要跳出常規思維去思考方可有所突破。

最後把nfs server端本地測試的結果也貼出來,感嘆下快閃儲存器卡的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

AIX 掛載linux下的nfs

今天客戶有需要,對aix小機中的一套oracle rac資料庫遷移到另一套aix 的oracle rac資料庫下,但是兩套小機都沒有額外的空間來儲存備份資料,這時就想到了nfs,可是以前只有linux的nfs使用經驗,怎麼辦呢 在網上隨便找了個文章看了下,感覺和linux下的方式差不多。搭建linu...

NFS掛載及寫入故障

最近在做架構時,分離出來一台伺服器,伺服器是通過nfs 網路檔案系統 給兩台web伺服器提供儲存的,在編輯nfs配置檔案 etc exports 時 想了一下,允許訪問nfs共享目錄的範圍用 範圍太大,不安全 於是想到了定義乙個兩台web伺服器所在的網段來訪問nfs服務,其他任何都無權掛載訪問,特編...

AIX和linux之間掛載nfs錯誤

linux作為nfs伺服器,其 etc exports檔案為 quote cat etc exports tbackup orcl hisdb02 rw,async,no root squash quote aix作為nfs客戶端,其 etc filesystems中已經新增如下條目 quote t...