• 售前

  • 售后

热门帖子
入门百科

关于AIX挂载NFS写入服从低效的解决方法

[复制链接]
123457278 显示全部楼层 发表于 2021-10-25 19:13:19 |阅读模式 打印 上一主题 下一主题
NFS提供的服务

Mount: 通过在服务端启用/usr/sbin/rpc.mountd伺服历程,在客户端利用mount命令,mounted伺服历程是一个RPC往返应客户端的哀求

Remote File access:通过在服务端启用/usr/sbin/nfsd和在客户端启用/usr/sbin/biod,来出来客户端对文件的哀求。但客户端一个用户要来读或写一个在服务器端的文件时,biod伺服历程发送这个哀求到服务端。

Boot parameters: 通过在服务端启用/usr/sbin/rpc.bootparamd伺服历程来提供无盘SunOS客户端的启动参数。

PC authentication: 通过在服务端启动/usr/sbin/rpc.pcnfsd来提供PC-NFS的用户认证服务

一个NFS服务是无状态的(stateless),也就是说,NFS的传输是原子级的,一个单一的NFS传输对应了一个单一完备的文件操作。
背景:
Linux是NFS的Server端,AIX是NFS的Client端(别的,有一个Linux也作为Client端对比测试)。
1.NFS对应的底层设备是闪存卡,当地测试I/O写性能可达2GB/s;

2.服务器是千兆网卡,FTP测试传输可到达100MB/s;

3.AIX成功挂载NFS,dd测试写入速率只有10MB/s;

4.Linux成功挂载NFS,同样dd测试写入速率可到达100MB/s;

说明:以上速率主要是表现数量级的差异,现实测试会有少许偏差。
详细环境:

      
  • NFS Server:RHEL 6.8  
  • NFS Client:AIX 6.1、RHEL 6.8
挂载参数均依据MOS文档配置:
  1. Mount Options for Oracle files for RAC databases and Clusterware when used with NFS on NAS devices (文档 ID 359515.1)
复制代码
根据本次现实需求,提炼一下须要配置的参数:
  1. --MOS建议(AIX):
  2. cio,rw,bg,hard,nointr,rsize=32768,
  3. wsize=32768,proto=tcp,noac,
  4. vers=3,timeo=600
  5. --MOS建议(Linux):
  6. rw,bg,hard,nointr,rsize=32768,
  7. wsize=32768,tcp,actimeo=0,
  8. vers=3,timeo=600
复制代码
AIX NFS的挂载参数:
  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
复制代码
直接挂载提示如下错误:
  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
  2. mount: 1831-008 giving up on:
  3. 10.xx.xx.212:/xtts
  4. vmount: Operation not permitted.
复制代码
查资料确认AIX须要额外设置网络参数:
  1. # nfso -p -o nfs_use_reserved_ports=1
复制代码
再次实验挂载成功:
  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:
  1. --test performance; AIX NFS
  2. # time dd if=/dev/zero of=/xtts/test-write bs=8192 count=102400
  3. 102400+0 records in.
  4. 102400+0 records out.
  5. real 0m43.20s
  6. user 0m0.79s
  7. sys  0m5.28s
  8. # time dd if=/xtts/test-write of=/dev/null bs=8192 count=102400
  9. 102400+0 records in.
  10. 102400+0 records out.
  11. real 0m30.86s
  12. user 0m0.84s
  13. sys  0m5.88s
复制代码
全部参数都是根据现实需求,按照MOS的建议设置的。有什么问题吗?
      
  • 实验去掉cio参数测试,发现效果险些没变化;  
  • 实验去掉hard参数测试,发现效果险些没变化;  
  • 实验协议从tcp改为udp测试,发现效果险些没变化;
险些能试的参数都试了,效果都不理想,立刻都准备和谐资源找主机工程师定位了。
此时,灵感乍现,突然想到一个大概性。有没有大概AIX上的NFS限定了单个历程的I/O吞吐本领?带着这个猜测,举行并行测试:

开5个窗口同时开始dd:
  1. time dd if=/dev/zero of=/xtts/test-write1 bs=8192 count=102400
  2. time dd if=/dev/zero of=/xtts/test-write2 bs=8192 count=102400
  3. time dd if=/dev/zero of=/xtts/test-write3 bs=8192 count=102400
  4. time dd if=/dev/zero of=/xtts/test-write4 bs=8192 count=102400
  5. 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的挂载参数:
  1. # 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的测试效果:
  1. --test performance; Linux NFS
  2. # dd if=/dev/zero of=/xtts/test-write bs=8192 count=102400
  3. 102400+0 records in
  4. 102400+0 records out
  5. 838860800 bytes (839 MB) copied, 6.02451 s, 139 MB/s
  6. # dd if=/xtts/test-write of=/dev/null bs=8192 count=102400
  7. 102400+0 records in
  8. 102400+0 records out
  9. 838860800 bytes (839 MB) copied, 8.55925 s, 98.0 MB/s
复制代码
对AIX不熟悉,没有进一步深究底层原理。开始解决问题过程中的主要困惑在于,为何Linux作为client时,无需并行就可以dd测试到达100MB/s的速率,使本身陷入了固有思维中。从这件事情得到的思考是:有些时候,要跳出通例思维去思考方可有所突破。

最后把NFS Server端当地测试的效果也贴出来,感叹下闪存卡的I/O本领:
  1. # dd if=/dev/zero of=/dev/test-write2 bs=8192 count=1024000
  2. 1024000+0 records in
  3. 1024000+0 records out
  4. 8388608000 bytes (8.4 GB) copied, 4.19912 s, 2.0 GB/s
复制代码
总结
以上就是这篇文章的全部内容了,渴望本文的内容对各人的学习或者工作具有一定的参考学习代价,假如有疑问各人可以留言交换,谢谢各人对草根技能分享的支持。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作