NFS是網絡文件系統(Network File System)的簡稱,是分布式計算系統的一個組成部分,可實現在異種網絡上共享和裝配遠程文件系統。NFS由Sun公司開發,目前已經成為文件服務的一種標準(RFC1904,RFC1813)。其最大的功能就是可以通過網絡,讓不同操作系統的計算機可以共享數據,所以也可以將它看做是一個文件服務器。NFS文件服務器是Linux最常見網絡的服務之一。盡管它的規則簡單,卻有著豐富的內涵。NFS 服務器可以看作是一個文件服務器,它可以讓你的PC通過網絡將遠端的NFS 服務器共享出來的文件掛載到自己的系統中,在客戶端看來使用NFS的遠端文件就象是在使用本地文件一樣。
一、高并發環境下的重要優化
1.1 客戶端參數優化
a)async: 異步同步,此參數會提高I/O性能,但會降低數據安全(除非對性能要求很高,對數據可靠性不要求的場合。一般生產環境,不推薦使用)
b)noatime: 取消更新文件系統上的inode訪問時間,提升I/O性能,優化I/O目的,推薦使用。
c)nodiratime:取消更新文件系統上的directory inode訪問時間,高并發環境,推薦顯式應用該選項,提高系統性能
d)noexec:掛載的這個文件系統,要不要執行程序(安全選項)
e)nosuid:掛載的這個文件系統上面,可不可以設置UID(安全選項)
f)rsize/wsize:讀取(rsize)/寫入(wsize)的區塊大小(block size),這個設置值可以影響客戶端與服務端傳輸數據的緩沖存儲量。一般來說,如果在局域網內,并且客戶端與服務端都具有足夠的內存,這個值可以設置大一點,比如說131072(bytes),提升緩沖區塊將可提升NFS文件系統的傳輸能力。
客戶端掛載:rsize,wsize,noatime,nodiratime四個選項為性能優化選項,nosuid,noexec兩個選項為安全優化選項。
|
mount -t nfs -o noatime,nodiratime,rsize=131072,wsize=131072 IP:/backup/NFS /mnt |
1.2內核參數優化
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
默認值
[root@oldboy ~]#cat /proc/sys/net/core/rmem_max #該文件指定了發送套接字緩沖區大小的最大值
124928
[root@oldboy ~]#cat /proc/sys/net/core/rmem_default #該文件指定了發送套接字緩沖區 大小的默認值
124928
調優后
[root@oldboy ~]#echo 8388608 > /proc/sys/net/core/rmem_default
[root@oldboy ~]#echo 16777216 > /proc/sys/net/core/rmem_max
二、常見問題解決方法
1、umount /dev/nb1 卸載失敗, 如果發現有提示“device is busy”,找到是什么進程使得他busy
使用:fuser -m /mnt/data 將會顯示使用這個模塊的pid
fuser -mk /mnt/data 將會直接kill那個pid
然后重新mount即可。也可直接remount,命令為
[root@localhost ~]# mount -o rw,remount /mnt/data
2、如果執行mount掛載失敗
解決方法:則需要在云主機上執行dhclinet重新獲取路由或者重啟機器,即可掛載成功。