We are using rsync to synchronize data from two NFS servers. One NFS server is on the east coast, the other is on west coast. RTT is about 110ms.
On the east coast NFS server I mount the west coasts NFS server mount point.
<server>:/home/backups on /mnt/backups type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5,clientaddr=x.x.x.x,local_lock=none,addr=y.y.y.y).
The data is ALREADY on both servers and just to do a validation of the data (e.g. sync folders and when nothing needs to be changes). The following is how long it takes to validate that east coast server is the same as west cost server of a 7GB folder.
The follow takes about 8 minutes to complete over 7GB of data.
rsync -r -vvvv --info=progress2 --size-only /<local_path>/ /<remote_path>/
The following (which avoids using NFS mount) takes about 15seconds to complete over 7GB of data (same as above).
rsync -r -vvvv --info=progress2 --size-only /<local_path>/ <user>@<west_cost_NFS>:/<remote_path>/
again the above is NOT moving any data as the folders are already synchronized, its just validating the data is the same (based on size of files).
I've tried using -o async on client and in /etc/exports async on the server but the client won't ever show async when I run "mount" on the client. I assume async is default. I've tried changing rsize, wsize as well to larger values, but performance doesn't get much better. Am I just SOL on getting any better performance out of NFS?