小编给大家分享一下如何解决AIX挂载NFS写入效率低效的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强> NFS提供的服务
强>
山:通过在服务端启用/usr/sbin/rpc。mountd伺服进程,在客户端使用山命令,安装伺服进程是一个RPC来回应客户端的请求
远程文件访问:通过在服务端启用/usr/sbin/nfsd和在客户端启用/usr/sbin/生气,来出来客户端对文件的请求。但客户端一个用户要来读或写一个在服务器端的文件时,biod伺服进程发送这个请求到服务端。
启动参数:通过在服务端启用/usr/sbin/RPC。bootparamd伺服进程来提供无盘SunOS客户端的启动参数。
电脑认证:通过在服务端启动/usr/sbin/rpc。pcnfsd来提供PC-NFS的用户认证服务
一个NFS服务是无状态的(无状态的),也就是说,NFS的传输是原子级的,一个单一的NFS传输对应了一个单一完整的文件操作。
<强>背景:强>
Linux是NFS的服务器端,AIX NFS的是客户端(此外,有一个Linux也作为客户端对比测试)。
1. NFS对应的底层设备是闪存卡,本地测试的I/O写性能可达2 gb/s;
2。服务器是千兆网卡,FTP测试传输可达到100 mb/s。
3. AIX成功挂载NFS, dd测试写入速度只有10 mb/s;
4. Linux成功挂载NFS,同样dd测试写入速度可达到100 mb/s。
说明:以上速度主要是体现数量级的差异,实际测试会有少许偏差。
<强>具体环境:强>
- <李>
NFS服务器:RHEL 6.8
李> <李>NFS客户机:AIX 6.1中,RHEL 6.8
李>挂载参数均依据MOS文档配置:
Oracle RAC数据库的文件和修改挂载选项时使用NFS> #, mount -o cio, rw, bg,硬,nointr, rsize=32768, wsize=32768,原型=tcp noac,更=3,timeo=600, 10. xx.xx.212:/xtts /xtts 山:1831 - 008,giving up : 10. xx.xx.212:/xtts vmount: Operation not 允许的。
查资料确认AIX需要额外设置网络参数:
#, nfso -p -o nfs_use_reserved_ports=1再次尝试挂载成功:
mount -o cio, rw, bg,硬,nointr, rsize=32768, wsize=32768,原型=tcp noac,更=3,timeo=600, 10. xx.xx.212:/xtts /xtts可dd测试的速度非常不理想,只有10 mb/s:
——test 性能;AIX NFS #,time dd 如果=/dev/zero =/xtts/test-write b=8192,数=102400 102400 + 0 records 在。 102400 + 0,records 。 real 0 m43.20s user 0 m0.79s sys 0 m5.28s #,time dd 如果=/xtts/test-write =/dev/null b=8192,数=102400 102400 + 0 records 在。 102400 + 0,records 。 real 0 m30.86s user 0 m0.84s sys , 0 m5.88s所有参数都是根据实际需求,按照MOS的建议设置的。有什么问题吗?
<李>
尝试去掉cio参数测试,发现结果几乎没变化;
李> <李>尝试去掉硬参数测试,发现结果几乎没变化;
李> <李>尝试协议从tcp改为udp测试,发现结果几乎没变化;
李>几乎能试的参数都试了,结果都不理想,马上都准备协调资源找主机工程师定位了。
此时,灵感乍现,突然想到一个可能性。有没有可能AIX上的NFS限制了单个进程的I/O吞吐能力?带着这个猜测,进行并行测试:
开5个窗口同时开始dd:
time dd 如果=/dev/zero =/xtts/test-write1 b=8192,数=102400 time dd 如果=/dev/zero =/xtts/test-write2 b=8192,数=102400 time dd 如果=/dev/zero =/xtts/test-write3 b=8192,数=102400 time dd 如果=/dev/zero =/xtts/test-write4 b=8192,数=102400 time dd 如果=/dev/zero =/xtts/test-write5 b=8192,数=102400惊喜的发现5个窗口都在55年代同时完成,这相当于800 * 5=4000,都在55年代完成,每秒达到72 mb/s,通过这种并行的方式已满足提升效率的需求。
而且看起来只要继续尝试多开窗口测试,基本也能达到网络上限100 mb/s(千兆网卡限制)。
附:测试同样的NFS挂载到另一台Linux服务器上,无需并行,dd写入速度就可达100 mb/s,这也是之前影响自己思考的因素。
Linux NFS的挂载参数:#, mount -o rw, bg,硬,nointr, rsize=32768, wsize=32768, tcp、actimeo=0,更=3,timeo=600, 10. xx.xx.212:/xtts /xtts如何解决AIX挂载NFS写入效率低效的问题