Re: nfsd rdma bandwith investigation / possible lock contention / request for ideas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Aug 2, 2024, at 2:11 PM, Damir Chanyshev <conflict342@xxxxxxxxx> wrote:
> 
> Hello!
> Recently I bumped into an interesting situation, lab environment
> consists of two identical servers, interconnected via infiniband cx6
> nics.
> Server with 6.9.12 release and client with 6.10.2.
> During simple fio testing, throughput capped to 90K 4k IOPS without
> nconnect and 160k 4k IOPS with nconnect=16. For block 1M almost the
> same story 6GB/s vs 9GB/s, for one fio job.
> Howether client was not maxed out.
> What could we do in the current situation? I would be very grateful
> for any input.
> 
> Previous  discussion:
> 1) https://marc.info/?l=linux-nfs&m=170964724830582&w=4
> 2) https://marc.info/?l=linux-nfs&m=171966720614369&w=2
> 3) https://marc.info/?l=linux-nfs&m=172196920511337&w=2
> 
> Lab env details:
> 
> # ========
> # captured on    : Fri Aug  2 11:18:39 2024
> # header version : 1
> # data offset    : 2456
> # data size      : 22161720
> # feat offset    : 22164176
> # hostname : nfsd-test.local
> # os release : 6.9.12-060912-generic
> # perf version : 6.9.12
> # arch : x86_64
> # nrcpus online : 128
> # nrcpus avail : 128
> # cpudesc : AMD EPYC 9354 32-Core Processor
> # cpuid : AuthenticAMD,25,17,1
> # total memory : 1584976412 kB
> 
> mount config:
> 198.51.100.10:/tmp/ram_export /mnt/nfs_ram nfs4
> rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,soft,proto=rdma,nconnect=16,port=20049,timeo=600,retrans=2,sec=sys,clientaddr=198.51.100.33,local_lock=none,addr=198.51.100.10
> 0 0
> 
> exports configs:
> tmpfs /tmp/ram_export tmpfs
> rw,relatime,size=536870912k,nr_inodes=262144,inode64,huge=always,noswap
> 0 0
> /tmp/ram_export *(rw,no_root_squash,sync,insecure,no_wdelay)
> 
> 
> nfsd config:
> [exportd]
> threads = 32
> 
> [general]
> pipefs-directory = /run/rpc_pipefs
> 
> [mountd]
> manage-gids = y
> threads = 32
> 
> [nfsd]
> rdma = y
> rdma-port = 20049
> threads = 32
> 
> fio config:
> 
> [globall]
> #bs=4k
> bs=1M
> #ioengine=libaio
> ioengine=io_uring
> rw=write
> direct=1
> group_reporting
> time_based
> runtime=900
> size=8G
> iodepth=32
> exitall
> 
> [bench_rdma_cpu]
> directory=/mnt/nfs_ram

The flame graph shows that the inode_lock in shmem_file_write_iter
is very contented. My first guess would be that your fio test is
configured to use only one file.


--
Chuck Lever






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux