Concurrency 内核NFS模块是否有并发限制?
背景:我在用fio测试nfs服务器。我发现不管Idepth设置为fio多少。nfs服务器在飞行中只能有64个。所以我只是怀疑nfs协议的某些地方限制了运行中的max concurrentmax io fio命令是Concurrency 内核NFS模块是否有并发限制?,concurrency,io,linux-kernel,nfs,Concurrency,Io,Linux Kernel,Nfs,背景:我在用fio测试nfs服务器。我发现不管Idepth设置为fio多少。nfs服务器在飞行中只能有64个。所以我只是怀疑nfs协议的某些地方限制了运行中的max concurrentmax io fio命令是 fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=write -bs=4k -size=500M -time_based -runtime=90 -name=Fiow -directory=/75 我
fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=write -bs=4k -size=500M -time_based -runtime=90 -name=Fiow -directory=/75
我的nfs服务器基于ganesha,并通过使用ganesha_stats.py在飞行中得出结论64
所以我现在有两个选择:
研究调用图并读取代码以发现问题
我下载linux内核代码,但很难做到。我应该从哪个函数/源文件开始,可能是vfs.c:nfsd_write?
尝试使用“perf”跟踪调用图以加快linux内核的代码读取速度,但失败。因为“perf report”显示没有函数名的共享库符号。
学习nfs协议/mount cmd以查找限制
有人能帮我吗 假设您使用的是NFSv4.1: 在NFSv4.1中,未完成请求的数量受插槽表[…]的大小限制 以及: 它是以下各项的默认值: 这方面的IIUC是:
#define NFS4_MAX_SLOT_TABLE (1024U)
module_param(max_session_slots, ushort, 0644);
MODULE_PARM_DESC(max_session_slots, "Maximum number of outstanding NFSv4.1 "
"requests the client will negotiate");
#define NFS4_MAX_SLOT_TABLE (1024U)