配置帳號php
cat /etc/passwd # 查看系統用戶 groupadd -g 45 nfsuser #添加用戶組nfsuser,GID 45值能夠設置沒有佔用的 useradd -u 45 -g nfsuser nfsuser #添加用戶,並加入用戶組,設置用戶UID值 mkdir /home/sharefiles #建立分享目錄,分享目錄所在磁盤注意容量問題 setfacl -m u:nfsuser:rwx /home/sharefiles #設置分享目錄ACL用戶權限
vim /etc/exports #編輯分享目錄配置文件html
#設置要分享的目錄,分享給誰,定義相關屬性權限 /home/sharefiles 10.29.167.186(rw,sync,all_squash,anonuid=45,anongid=45) /home/sharefiles 10.29.168.24(rw,sync,all_squash,anonuid=45,anongid=45) #分享目標能夠是完整IP或IP域192.168.100.0/24表示一個網段主機,支持通配符* 表示全部主機 #權限:rw讀寫權限、ro只讀、sync數據同步寫入內存硬盤生產環境使用、async異步先寫入內存後再寫入硬盤、all_squash不論登陸NFS的用戶是誰都會改爲匿名用戶(nfsnobody)配合anonuid和anongid指定用戶身份、root_squash默認值將root登錄用戶轉爲匿名用戶、fsid=0 根文件系統NFS4 no_root_squash 客戶端使用 root 身份來操做服務器的文件系統
nfsstat -rc 查看服務端是否存在瓶頸 retrans值太高說明NFS線程數不夠,默認值爲8node
客戶端加載優化:linux
nodiratime 取消更新文件系統上的directory inode訪問時間,高併發環境,推薦顯式應用該選項,提升系統性能
noexec 掛載的這個文件系統,要不要執行程序(安全選項)
nosuid 掛載的這個文件系統上面,可不能夠設置UID(安全選項)
rsize/wsize 讀取(rsize)/寫入(wsize)的區塊大小(block size),這個設置值能夠影響客戶端與服務端傳輸數據的緩衝存儲量vim
a.命令行調整
cat /proc/sys/net/core/rmem_max #該文件指定了發送套接字緩衝區大小的最大值
124928
cat /proc/sys/net/core/rmem_default #該文件指定了發送套接字緩衝區 大小的默認值
124928
echo 8388608 > /proc/sys/net/core/rmem_default
echo 16777216 > /proc/sys/net/core/rmem_maxcentos
/sbin/sysctl -p 生效配置緩存
防火牆的問題,防火牆開放NFS安全
阿里雲服務器 雲磁盤性能測試
SSD硬盤 最大IOPS :20000 最大吞吐量:256MBps 計算公式:IOPS=min{30容量,20000} 吞吐量=min{50+0.5容量,256}MBps 取最小值
高效雲盤 最大IOPS: 3000 最大吞吐量: 80MBps 計算公式:IOPS=min{1000+6容量,3000} 吞吐量=min{50+0.1容量,80}MBps 取最小值
普通雲盤 最大IOPS:數百 最大吞吐量:30MBps
200G高效雲盤最大IOPS爲 1000+6200=2200 最大吞吐量爲: 50+0.1200= 70MBps
yum install fio服務器
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing網絡
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=64k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=64k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
/dev/null,外號叫無底洞,你能夠向它輸出任何數據,它通吃,而且不會撐着!
/dev/zero,是一個輸入設備,你可你用它來初始化文件。該設備無窮盡地提供0
if=文件名:輸入文件名 of=文件名:輸出文件名
bs=bytes:同時設置讀入/輸出的塊大小爲bytes個字節
count=blocks:僅拷貝blocks個塊,塊大小等於ibs指定的字節數
測試時文件的大小至少是系統RAM的兩倍,每次測試都使用umount 和mount對/testfs進行掛載,經過比較不一樣的塊大小,獲得優化的塊大小。這樣才能不用系統緩存
time dd if=/dev/zero of=/home/nfs/nfs.dat bs=64k count=16384 #循環向nfs目錄中寫入大小爲64k的文件 寫入次數16384 總共文件大小爲1.GB
time dd if=/home/nfs/nfs.dat of=/dev/null bs=64k
write: io=1024.0MB, bw=8804.7KB/s, iops=2201, runt=119093msec #隨機寫 帶寬8.7M/秒
write: io=1024.0MB, bw=71737KB/s, iops=1120, runt= 14617msec #吞吐量寫 帶寬70M/秒
read : io=1024.0MB, bw=71776KB/s, iops=1121, runt= 14609msec #吞吐量讀 帶寬70M/秒
寫性能結果: 耗時4.67692 s, 速度 81 MB/s cpu使用率爲7% 無文件217M 覆蓋寫81M
讀性能結果: 耗時0.237726 s, 速度73 MB/s
io= 執行了多少M的IO bw= 平均IO帶寬 iops= IOPS runt= 線程運行時間
slat 提交延遲 clat 完成延遲 lat響應時間 bw 帶寬 cpu利用率
write: io=1024.0MB, bw=6786.3KB/s, iops=1696, runt=154520msec #隨機寫 帶寬6.7M/秒
read : io=1024.0MB, bw=13263KB/s, iops=3315, runt= 79062msec #隨機讀 帶寬13M/秒 cpu消耗大了5倍
write: io=1024.0MB, bw=67615KB/s, iops=1056, runt= 15508msec #吞吐量寫 帶寬66M/秒
read : io=1024.0MB, bw=67606KB/s, iops=1056, runt= 15510msec #吞吐量讀 帶寬66M/秒
寫性能結果:耗時19.9055 s, 速度 50 MB/s cpu使用率爲 3%
讀性能結果:耗時0.248948 s, 速度 70 MB/s
寫性能:17.2018 s, 62.4 MB/s
讀性能:0.267751 s, 4.0 GB/s
write: io=1024.0MB, bw=31542KB/s, iops=492 , runt= 33244msec #吞吐量寫 帶寬31M/秒read : io=1024.0MB, bw=77437KB/s, iops=1209 , runt= 13541msec #吞吐量讀 帶寬77M/秒write: io=1024.0MB, bw=4563.3KB/s, iops=1140 , runt=229787msec #隨機寫 帶寬4.5M/秒read : io=1024.0MB, bw=5342.4KB/s, iops=1335 , runt=196275msec #隨機讀 帶寬5.3M/秒