| soft/hard |
軟掛載方式掛載系統(tǒng),若NFS請求超時,則客戶端向調用程序返回錯誤;如果使用硬連接方式則客戶端一直重新請求直至成功。默認為hard。 |
對于關鍵數據業(yè)務,不希望業(yè)務由于網絡延遲或服務器服務重啟或短暫的過載等情況而中斷,建議掛載時使用hard參數;對于非關鍵數據業(yè)務,希望客戶端程序能盡快響應,可以使用soft參數。 |
| timeo=n |
客戶端重傳請求前等待時間。對于基于TCP的NFS服務,默認等待重傳時間為60s。使用TCP協(xié)議時,NFS Client不執(zhí)行任何超時backoff。對于UDP協(xié)議,client使用一個合適的算法,為常用的請求類型estimate合適的超時時間。但對不常用的請求類型使用timeo設置。如果timeo沒有設置,不常用的請求類型1.1秒以后重試。在每次重發(fā)后,NFS Client會將timeout時間加倍,直到最大的60秒。 |
timeo、retrans**這兩個參數選擇主要取決于網絡性能。對于網絡吞吐量小,延時高,抖動高,丟包率大的情況,建議將timeo,retrans兩個參數值設置大一些。對于網絡吞吐量大,延時低,抖動低,丟包率小的情況,建議將timeo,retrans兩個參數值設置小一些。具體設置值因網絡狀況而定。 |
| resize=n |
每個READ命令字向服務器讀取文件的最大字節(jié)數。實際數據小于或等于此值。resize必須是1024倍數的正整數,小于1024時自動設為4096,大于1048576時自動設為1048576。默認時,服務器和客戶端進行協(xié)商后設置。 |
通常使用默認值,由客戶端和服務器協(xié)商設置。對于擁塞的低速網絡,可以將該值調小,向服務器發(fā)送較短的請求包來提高NFS性能。對于高速網絡,可以將該值增大,減少向服務器發(fā)送的請求包,獲得性能的提升。 |
| wsize=n |
每個WRITE命令字向服務器寫入文件的最大字節(jié)數。實際數據小于或等于此值。resize必須是1024倍數的正整數,小于1024時自動設為4096,大于1048576時自動設為1048576。默認時,服務器和客戶端進行協(xié)商后設置。 |
通常使用默認值,由客戶端和服務器協(xié)商設置。對于擁塞的低速網絡,可以將該值調小,向服務器發(fā)送較小的請求包來提高NFS性能。對于高速網絡,可以將該值增大,減少向服務器發(fā)送的請求包,獲得性能的提升。 |
| async/sync |
同步、異步掛載,客戶端默認異步(async)。對于異步掛載,客戶端下發(fā)的寫數據會先緩存在內存中,達到一定大小或者其他條件(與客戶端設置,狀態(tài)有關),再一起發(fā)往服務端。而同步掛載,每次下發(fā)的寫數據馬上發(fā)到服務端。 |
建議用默認的異步掛載,可以提高業(yè)務性能。對于客戶端應用層來說,完全感知不到數據是否發(fā)往服務端,只能感知數據已經寫成功。同步掛載要求每個請求立即發(fā)到服務端,增加了請求連接、發(fā)送次數,對于小io場景性能差異很明顯(io越小,差異越大,一般都能達到幾倍甚至更大的差異)。對于異步掛載,可能在查看io性能顯現(xiàn)為性能波動。在客戶端寫入緩存期間iops可能就低,因為數據還未發(fā)到服務端。但是性能是完全正常的,應該說比同步更好。如果是要要追求界面上的平穩(wěn),那就建議改為同步掛載。(補充:追求一次小io的數據全部刷到服務端穩(wěn)定存儲時間小,不僅要求客戶端同步掛載,還需要服務端共享也是同步導出,否則需要加上手動commit刷盤——flush)。 |
| acregmin/acregmax |
設置NFS客戶端緩存普通文件屬性的最短時間和最長時間,單位為秒。超過此時間后對其進行更新。默認最短時間是3s,最長時間是60s。 |
|
| acdirmin/acdirmax |
設置NFS客戶端緩存目錄屬性的最短時間和最長時間,單位為秒。超過此時間后對其進行更新。默認最短時間是3s,最長時間是60s。 |
|
| ac/noac |
設置是否緩存文件屬性。為了提高性能,NFS客戶端緩存文件屬性(默認ac),然后每隔一段時間去檢查文件屬性后更新。在緩存有效期內,客戶端不檢測服務器上文件屬性是否改變。默認為ac。 |
當服務器上共享文件的屬性頻繁地被多個客戶端改變時,建議使用noac選項,或者使用ac并配合使用較小的acregmin/acregmax/acdirmin/acdirmax設置,這樣就能獲得較好的屬性一致性。當服務器上共享文件的屬性不會被頻繁改變時,例如文件共享為只讀,或者網絡性能較好,建議使用默認的ac選項,然后根據實際的網絡狀況來調整acregmin/acregmax/acdirmin/acdirmax設置。 |
| Actimeo |
將acregmin/acregmax/acdirmin/acdirmax四個參數設置為相同時間,單位為秒。 |
|
| bg/fg |
設置掛載失敗后的行為方式。默認的fg方式將立刻退出返回錯誤狀態(tài),bg方式是退出前將產生一個子進程在后臺繼續(xù)嘗試掛載。 |
|
| sharecache/nosharecache |
設置客戶端并發(fā)掛載同一文件系統(tǒng)時數據緩存和屬性緩存的共享方式。設置為sharecache時,多個掛載共享共享同一緩存。設為nosharecache時,每個掛載各有一個緩存。默認為sharecache。 |
該參數用于客戶端多次掛載同一共享目錄的情況,建議使用默認的sharecache選項。 |
| resvport/noresvport |
設置連接服務器是否使用保密源端口。默認的resvport設置保密端口,noresvport設置為非保密端口。內核2.6.28及以后版本支持。 |
|
| lookupcache=mode |
設置內核管理給定掛載點的目錄項緩存方式。其中包括all/none/pos幾種方式??蛻舳司彺鍸OOKUP命令字請求結果。如果請求的目錄項在服務器上,則返回結果為正,否則為負。all的管理方式是在父目錄緩存的屬性失效前客戶端緩存這兩種目錄項;pos是在父目錄緩存的屬性失效前客戶端緩存結果為正的查詢結果,總是重新驗證結果為負的查詢結果。none總是重新驗證目錄緩存項。默認為all管理方式,內核2.6.28及以后版本支持。 |
LOOKUP命令字的作用是將文件名轉換文件句柄。對于多個客戶端經常創(chuàng)建或刪除文件的情況,建議使用none。其它情況選用all或者pos。 |
| intr/nointr |
設置是否允許信號中斷掛載點的文件操作。如果指定intr,當NFS操作被信號中斷時系統(tǒng)返回EINTR。指定nointr,信號不會中斷NFS文件操作。默認為nointr。指定intr時,通常同時使用soft選項,防止數據損壞。內核2.6.25及以后不再支持。 |
|
| cto/nocto |
設置是否使用“關閉打開”緩存一致的特性。通常客戶端打開文件時檢查是否存在以及是否有權限,當關閉文件時刷新更改。當設置為nocto時,客戶端使用非標準的試探來檢查服務器上文件是否改變,對于只讀和文件更改較少時情形有助于提高性能。 |
對于文件內容改變很少的情況,如服務器提供只讀共享權限(文件系統(tǒng)以RO權限導出)給客戶使用,建議使用nocto選項,這樣可以提高性能。對于文件內容經常改變,客戶端對文件緩存一致性要求較高,建議使用cto參數。 |