iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >关于AIX挂载NFS写入效率低效的解决方法
  • 308
分享到

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

aix挂载nfsaixnfs自动挂载aix配置nfs 2022-06-04 22:06:35 308人浏览 薄情痞子
摘要

NFS提供的服务 Mount: 通过在服务端启用/usr/sbin/rpc.mountd伺服进程,在客户端使用mount命令,mounted伺服进程是一个RPC来回应客户端的请求 Remote File acce

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的SadALvXerver端,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文档配置:

Mount Options for oracle files for RAC databases and Clusterware when used with NFS on NAS devices (文档 ID 359515.1)

根据本次实际需求,提炼一下需要配置的参数:

--MOS建议(AIX):
cio,rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,noac,
vers=3,timeo=600

--MOS建议(Linux):
rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,actimeo=0,
vers=3,timeo=600

AIX NFS的挂载参数:

mount -o cio,rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,vers=3,timeo=600 10.xx.xx.212:/xtts /xtts

直接挂载提示如下错误:


# mount -o cio,rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,vers=3,timeo=600 10.xx.xx.212:/xtts /xtts
mount: 1831-008 giving up on:
10.xx.xx.212:/xtts
vmount: Operation not permitted.

查资料确认AIX需要额外设置网络参数:


# nfso -p -o nfs_use_reserved_ports=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:


--test perfORMance; AIX NFS
# time dd if=/dev/zero of=/xtts/test-write bs=8192 count=102400
102400+0 records in.
102400+0 records out.

real 0m43.20s
user 0m0.79s
sys  0m5.28s
# time dd if=/xtts/test-write of=/dev/null bs=8192 count=102400
102400+0 records in.
102400+0 records out.

real 0m30.86s
user 0m0.84s
sys  0m5.88s

所有参数都是根据实际需求,按照MOS的建议设置的。有什么问题吗?

  • 尝试去掉cio参数测试,发现结果几乎没变化;
  • 尝试去掉hard参数测试,发现结果几乎没变化;
  • 尝试协议从tcp改为udp测试,发现结果几乎没变化;

几乎能试的参数都试了,结果都不理想,马上都准备协调资源找主机工程师定位了。

此时,灵感乍现,突然想到一个可能性。有没有可能AIX上的NFS限制了单个进程的I/O吞吐能力?带着这个猜测,进行并行测试:

开5个窗口同时开始dd:


time dd if=/dev/zero of=/xtts/test-write1 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write2 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write3 bs=8192 count=102400
time dd if=/dev/zero of=/xtts/test-write4 bs=8192 count=102400
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的挂载参数:


# 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的测试结果:


--test performance; Linux NFS
# dd if=/dev/zero of=/xtts/test-write bs=8192 count=102400
102400+0 records in
102400+0 records out
838860800 bytes (839 MB) cadALvXopied, 6.02451 s, 139 MB/s
# dd if=/xtts/test-write of=/dev/null bs=8192 count=102400
102400+0 records in
102400+0 records out
838860800 bytes (839 MB) copied, 8.55925 s, 98.0 MB/s

对AIX不熟悉,没有进一步深究底层原理。开始解决问题过程中的主要困惑在于,为何Linux作为client时,无需并行就可以dd测试达到100MB/s的速度,使自己陷入了固有思维中。从这件事情得到的思考是:有些时候,要跳出常规思维去思考方可有所突破。

最后把NFS Server端本地测试的结果也贴出来,感叹下闪存卡的I/O能力:


# dd if=/dev/zero of=/dev/test-write2 bs=8192 count=1024000
1024000+0 records in
1024000+0 records out
8388608000 bytes (8.4 GB) copied, 4.19912 s, 2.0 GB/s

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

--结束END--

本文标题: 关于AIX挂载NFS写入效率低效的解决方法

本文链接: https://www.lsjlt.com/news/19938.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 解决 PHP 函数效率低下的方法有哪些?
    php函数效率优化的五大方法:避免不必要的变量复制。使用引用以避免变量复制。避免重复函数调用。内联简单的函数。使用数组优化循环。 优化 PHP 函数效率的方法 改善 PHP 函数效率是...
    99+
    2024-05-02
    优化 php
  • Python解决多进程间访问效率低的方法总结
    目录前言使用进程间Queue效率问题场景采用管道模式解决总结前言 最近在解决一些算法优化的问题,为了实时性要求,必须精益求精的将资源利用率用到极致。同时对算法中一些处理进行多线程或者...
    99+
    2024-04-02
  • 无法在go中为docker容器写入有效的挂载路径
    php小编子墨发现,有一些开发者在使用Go语言编写docker容器时遇到了一个问题,即无法为容器写入有效的挂载路径。这个问题可能导致在容器中进行文件读写操作时出现错误或失败。对于开发者...
    99+
    2024-02-11
    go语言
  • VNPY中开盘前挂单失效的解决方法
    这篇文章将为大家详细讲解有关VNPY中开盘前挂单失效的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在VNPY量化交易平台中,挂停止单(STOP Order)是交易发起的常见方式,停...
    99+
    2023-06-02
  • java方法重载的无效怎么解决
    今天小编给大家分享一下java方法重载的无效怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。重载无效当谈论参数列表时,...
    99+
    2023-06-30
  • Android关于Button背景或样式失效问题解决方法
    目录前言问题描述:问题原因:解决方法:总结前言 最近在学习安卓开发的时候遇到了一个问题,使用Android Studio在为Button设置背景颜色的时候发现设置好后却在运行模拟机上...
    99+
    2024-04-02
  • 关于react+antd样式不生效问题的解决方式
    目录1、添加antd组件样式不生效2、运行yarn eject时暴露配置文件报错3、less-loader版本过高,删除旧版本,下载低版本即可4、项目中引入icon代码报错补充:Re...
    99+
    2024-04-02
  • 深入探索pandas排序方法:提升数据处理效率的关键
    提高数据处理效率的关键:深入理解pandas排序方法,需要具体代码示例 导语:在处理大量数据时,排序是一项非常常见的操作。pandas是Python中广泛使用的数据处理库,它提供了各种排序方法用于快速且高效地对数据进行排序。本文...
    99+
    2024-01-24
    Pandas 数据处理 排序方法
  • java中出现方法重载的无效如何解决
    java中出现方法重载的无效如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2...
    99+
    2023-06-14
  • 关于idea的gitignore文件编写及解决ignore文件不生效问题
    1.下载idea的 《.ignore》 插件,重启idea生效 2.添加自己想要忽略的文件夹及文件,一般选这个就够了 3.如果想要忽略提交的文件夹名称变成黄色了,就代表成功忽略...
    99+
    2024-04-02
  • win10输入法失效只能打英文的解决方法
    这篇文章主要介绍win10输入法失效只能打英文的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!win10输入法失效只能打英文的解决办法:首先在“计算机管理”窗口中,找到左侧系统工具下的“任务计划程序”菜单项;...
    99+
    2023-06-14
  • 关于keep-alive路由多级嵌套不生效的解决方案
    目录问题定位问题解决方案额外的问题及题解问题 发现了一个问题,多级嵌套的路由缓存页面没有生效。网上其实有一些是把路由拍平,然后再去处理菜单,但是我觉得还不如从根源上去解决这个问题。顺...
    99+
    2024-04-02
  • 解决在Mac上无法向U盘写入数据的问题:三种有效方法
    方法一:重新格式化U盘 Mac OS默认情况下不支持向NTFS卷写入。你可以选择重新格式化你的U盘为exFAT或者Mac OS扩展,下面是如何进行这个操作的步骤: 注意:格式化操作会删除U盘上的所有数据,所以在开始之前请务必备份你的数据。 ...
    99+
    2023-08-31
    macos java 开发语言
  • 最近关于Navicat到期的完美解决办法(亲测有效)
    目录1.删除注册表2.新建文本文档粘贴如下代码补充:Navicat过期的有效解决办法次方法是无限续杯法,可无限使用14天Navicat。 1.删除注册表 win+R输入regedit...
    99+
    2023-02-09
    Navicat到期 Navicat到期了怎么办
  • css导入成功但没有效果的解决方法
    这篇文章给大家分享的是有关css导入成功但没有效果的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css导入成功但没有效果的解决办法:1、打开网页调试工具,根据显示错误进行修改;2、查看link标签的“r...
    99+
    2023-06-14
  • Win10系统定时关机命令失效的解决方法
    这篇文章主要介绍了Win10系统定时关机命令失效的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Win10系统定时关机命令失效怎么办打开控制面板。点击电源选项。点击选...
    99+
    2023-06-10
  • 解决Oracle导入中文乱码问题的有效方法
    解决Oracle导入中文乱码问题的有效方法,需要具体代码示例 随着信息技术的发展,数据库已经成为企业存储重要数据的关键场所。Oracle作为一款功能强大的数据库管理系统,在企业应用中被...
    99+
    2024-03-10
    数据处理 编码转换 字符集设置
  • 关于sql server2012同步失效问题之高并发库同步失败的解决方法
    关于sql server2012数据库复制同步时报错:“ 该作业失败。  计划 1127 (复制代理计划。) 调用了该作业。最后运行的是步骤 1 (运行代理。)。. 已以用户 NT SE...
    99+
    2024-04-02
  • redhat linux enterprise 5输入ifconfig无效的解决方法是怎样的
    这篇文章给大家介绍redhat linux enterprise 5输入ifconfig无效的解决方法是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。如果我们输入/sbin/ifconfig或/usr/bin/g...
    99+
    2023-06-13
  • idea maven依赖引入失效无法正常导入依赖问题的解决方法
    目录前言1.File —>Project Structure2. Libraries —>点击依赖列表左上角的“+” &m...
    99+
    2023-05-16
    idea maven 依赖 idea maven依赖无法导入 idea无法导入本地maven依赖
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作