nfs性能优化

本文详细介绍mountnfs参数的选择,包括hard与soft的区别、rsize/wsize对性能的影响,以及如何设置超时、传输协议和缓存策略。还提供了测试NFS存储性能的方法,如dd命令和nfsiostat。

mount nfs参数:

mount的参数对存储的性能有很大的影响。 下面是一些基本的mount参数,大家可以参考。
HARD mount和SOFT MOUNT:
HARD: NFS CLIENT会不断的尝试与SERVER的连接(在后台,不会给出任何提示信息,在LINUX下有的版本仍然会给出一些提示),直到MOUNT上。
SOFT:会在前台尝试与SERVER的连接,是默认的连接方式。当收到错误信息后终止mount尝试,并给出相关信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
对于到底是使用hard还是soft的问题,这主要取决于你访问什么信息有关。例如你是想通过NFS来运行X PROGRAM的话,你绝对不会希望由于一些意外的情况(如网络速度一下子变的很慢,插拔了一下网卡插头等)而使系统输出大量的错误信息,如果此时你用的是HARD方式的话,系统就会等待,直到能够重新与NFS SERVER建立连接传输信息。另外如果是非关键数据的话也可以使用SOFT方式,如FTP数据等,这样在远程机器暂时连接不上或关闭时就不会挂起你的会话过程。

  1. rsize和wsize: 文件传输尺寸设定:V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。这两个参数的设定对于NFS的执行效能有较大的影响
  2. bg:在执行mount时如果无法顺利mount上时,系统会将mount的操作转移到后台并继续尝试mount,直到mount成功为止。(通常在设定/etc/fstab文件时都应该使用bg,以避免可能的mount不上而影响启动速度)
  3. fg:和bg正好相反,是默认的参数
  4. nfsvers=n:设定要使用的NFS版本,默认是使用2,这个选项的设定还要取决于server端是否支持NFS VER 3
  5. mountport:设定mount的端口
  6. port:根据server端export出的端口设定,例如如果server使用5555端口输出NFS,那客户端就需要使用这个参数进行同样的设定
  7. timeo=n:设置超时时间,当数据传输遇到问题时,会根据这个参数尝试进行重新传输。默认值是7/10妙(0.7秒)。如果网络连接不是很稳定的话就要加大这个数值,并且推荐使用HARD MOUNT方式,同时最好也加上INTR参数,这样你就可以终止任何挂起的文件访问。 更多的关于timeo的信息
  8. intr 允许通知中断一个NFS调用。当服务器没有应答需要放弃的时候有用处。 udp:使用udp作为nfs的传输协议(NFS V2只支持UDP) tcp:使用tcp作为nfs的传输协议
  9. namlen=n:设定远程服务器所允许的最长文件名。这个值的默认是25
  10. acregmin=n:设定最小的在文件更新之前cache时间,默认是3
  11. acregmax=n:设定最大的在文件更新之前cache时间,默认是60
  12. acdirmin=n:设定最小的在目录更新之前cache时间,默认是30
  13. acdirmax=n:设定最大的在目录更新之前cache时间,默认是60
  14. actimeo=n:将acregmin、acregmax、acdirmin、acdirmax设定为同一个数值,默认是没有启用。 这个参数也是对性能有很大的影响。没必要的话,可以不要打开。 可以看这个帖子了解更多actimeo的对性能的影响
  15. retry=n:设定当网络传输出现故障的时候,尝试重新连接多少时间后不再尝试。默认的数值是10000 minutes
  16. noac:关闭cache机制。

同时使用多个参数的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs 请注意,NFS客户机和服务器的选项并不一定完全相同,而且有的时候会有冲突。比如说服务器以只读的方式导出,客户端却以可写的方式mount,虽然可以成功mount上,但尝试写入的时候就会发生错误。一般服务器和客户端配置冲突的时候,会以服务器的配置为准。

如何测试nfs存储性能

我们可以用dd命令来向nfs存储中写入一些数据来查看存储的性能。 更多的细节可以参考这个帖子。如何用dd命令来测试nfs性能

然后我们可以用nfsiostat来查看存储的性能,例如iops,带宽,延迟等等。 具体的可以参考这个帖子。

为了优化NFS(Network File System)挂载性能,可以从服务器端和客户端两个方面入手。以下是一些具体的优化措施: ### 服务器端优化 1. **调整`tcp_slot_table_entries`参数**: - 增加`tcp_slot_table_entries`的值可以提高NFS服务器处理并发请求的能力。通常建议将其设置为128或更高,具体取决于服务器的负载情况。 2. **使用`noatime`挂载选项**: - 在挂载NFS共享时,使用`noatime`选项可以避免每次读取文件时更新访问时间戳,从而减少磁盘I/O操作。 3. **配置`exportfs`命令**: - 使用`exportfs`命令来管理NFS共享目录。例如,使用`-a`选项可以挂载或卸载所有目录,`-r`选项可以重新挂载目录,`-u`选项可以卸载特定目录,`-v`选项可以显示共享目录的信息。 ### 客户端优化 1. **调整`timeo`参数**: - `timeo`参数控制NFS客户端在超时前等待服务器响应的时间(单位为十分之一秒)。适当增加`timeo`的值可以减少因网络延迟导致的错误。 2. **使用合适的挂载选项**: - 在挂载NFS共享时,使用`ro`(只读)、`fg`(前台挂载)、`retry=1`(重试次数)、`retrans=1`(传输次数)、`intr`(允许中断)、`timeo=10`(超时时间)、`nolock`(禁用文件锁定)、`nocto`(禁用客户端时间戳更新)、`noacl`(禁用ACL检查)、`async`(异步写入)、`soft`(软挂载)、`ac`(属性缓存)、`actimeo=600`(属性缓存时间)等选项可以优化性能。 3. **监控和调试工具**: - 使用`nfsstat`、`nfsiostat`、`iostat`、`mountstats`等工具来监控NFS客户端的性能,帮助识别瓶颈。 ### 示例配置 在客户端挂载NFS共享时,可以使用以下命令: ```bash mount 192.168.251.116:/test /mnt -o ro,fg,retry=1,retrans=1,intr,timeo=10,nolock,nocto,noacl,async,soft,ac,actimeo=600 ``` ### 相关问题 1. 如何使用`nfsstat`工具监控NFS性能? 2. 如何在NFS客户端上使用`iostat`工具进行性能分析? 3. `tcp_slot_table_entries`参数对NFS服务器性能有何影响? 4. `noatime`挂载选项如何影响NFS性能? 5. 如何使用`exportfs`命令管理NFS共享目录?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值