nfs client高性能参数设置

简介: linux kernel中sunrpc的实现是单连接和长链接的,为了提高并发性能,在单连接的基础上提供多个slot,通过tcp_slot_table_entries参数设置。slot个数越多,nfs请求并发处理能力越强,如果slot个数很小,而nfs请求又很多,就会在client排队等待。

1、背景

Linux nfs客户端对于同时发起的NFS请求数量进行了控制,若该参数配置较小会导致IO性能较差。可以如下命令配置该参数:

cat /proc/sys/sunrpc/tcp_slot_table_entries

默认编译的内核该参数最大值为256,可适当提高该参数的值来取得较好的性能,以root身份执行以下命令

echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
echo "options sunrpc tcp_max_slot_table_entries=128" >>  /etc/modprobe.d/sunrpc.conf
sysctl -w sunrpc.tcp_slot_table_entries=128

修改完成后,您需要重新挂载文件系统或重启机器。

2、原因分析

下面来分析下tcp_slot_table_entries这个参数是如何影响nfs性能的

nfs协议使用sunrpc通信,linux kernel中sunrpc的实现是单连接和长链接,只有在一些特殊情况下才会新建连接。为了提高并发性能,在单连接的基础上提供多个slot。

nfs client发送请求过程简化如下:

(1)、每个nfs请求首先会分配一个空闲的slot,用来保存buffer和xid等一些环境上下文。
(2)、slot分配成功后,做一些初始化的工作,等待socket可写(send buffer是否满),
(3)、编码,包括slot的xid,nfs请求序列化成xdr。
(4)、调用send_request把编码后的数据包发送到对端。
(5)、收到对端的请求后,从header中解码出xid,根据xid找到对应的slot和上下文。
(6)、请求处理结束后释放slot。

efa4bf2e5647fa92e36bb7a03b78b2a19db793c8
从上述分析和上图中可以看出slot的个数决定了同时处理nfs请求的个数。slot个数越多,nfs请求并发处理能力越强,如果slot个数很小,而nfs请求又很多,就会在client排队等待。而不幸的是linux很多发行版本中,slot个数默认值都是2,所以基本上只有串行处理的能力,即使应用层有再多的并发也没有用。
上述分析做了简化处理,具体可以参考kernel代码实现。linux kernel中,nfs client的实现在fs/nfs/目录下,sunrpc的实现在net/sunrpc/目录下。
相关文章
|
存储 数据管理 Java
基于OSS、NFS构建高性能可扩展的遥感智能解译系统实践之路
该文探讨了构建高性能、可扩展的遥感智能解译系统的架构演进过程。作者强调架构应根据业务场景而定,而非追求单一的“最佳”架构。文章分为五个部分,介绍了从初步的业务场景分析到逐步优化的架构设计。 1. 业务场景描述了服务于地理信息行业的遥感数据管理平台,包括数据湖和遥感智能解译系统的功能和架构设计。 2. 初代系统解决了数据管理和智能解译的基本需求,但存在数据同步效率低下的问题。 3. 自动化阶段通过消息推送和数据接收模块减少了人工干预,将处理时间减半,但仍存在效率和稳定性问题。 4. 高性能阶段引入数据订阅/推送和数据接收Agent,实现了稳定、高速的数据传输,性能提升了6倍。
49481 2
|
网络协议 安全 Linux
nfs共享文件夹参数说明
NFS服务的主配置文件: /etc/exports: 格式:[共享的目录] [主机名或IP(参数,参数)] 例如可以编辑/etc/exports为: /data    *(sync,rw,no_root_squash) /test  192.
1920 0
|
Linux 网络协议 内存技术
|
存储 NoSQL
3.10.0-693.5.2内核nfs客户端租约过期挂死问题分析
## 现象 1. 边缘存储两个节点fileserver,glance挂载物理机上的挂载点均出现挂住无法访问 2. 从客户端抓包看,客户端内核间隔5s向服务端发送renew租约请求,服务端返回NFS4ERR_EXPIRED,即租约过期错误,从抓包现象看客户端一直向服务端发送相同的clientid renew请求,服务端一直返回租约过期错误,导致挂载点无法恢复 ![](https://ata2-img
2401 1
3.10.0-693.5.2内核nfs客户端租约过期挂死问题分析
|
8月前
|
存储 缓存 监控
NAS读取延时问题深度解析:NFS缓存机制与优化实战
本文深入解析NFS在分布式存储中的缓存一致性问题,结合电商案例,剖析客户端属性缓存导致的文件更新延迟。系统介绍acregmin、actimeo等关键参数,并提供禁用缓存、精细调优及架构升级三类实战方案,平衡性能与一致性。附监控诊断与进阶优化建议,助力生产环境高效稳定运行。(238字)
|
8月前
|
缓存 监控 NoSQL
阿里云NAS高并发场景下的读取延迟优化:NFS缓存机制深度解析与实战
本文解析阿里云NAS在高并发场景下NFS缓存导致的数据一致性问题,如电商图片更新延迟。深入分析客户端属性缓存机制,结合最佳实践提出三步优化:挂载参数调优、升级NFSv4.1、应用层缓存协同,并提供监控诊断方法,助力实现高性能与强一致性平衡。(238字)
|
存储 缓存 文件存储
NFS Hard Mount Vs Soft Mount
本章节将详细分析和对比NFS挂载参数的优劣,在使用NFS可根据业务情况做出最佳选择。
7745 0