Tengo mi Macbook Pro (MacOS Mojave) conectándose a un recurso NFS en una máquina Linux directamente conectada a través de Thunderbolt con marcos jumbo. Probando con iperf3
, puedo alcanzar ~14 Gbps (~1.8 GBps) a través de la conexión, por lo que espero que la red no sea el cuello de botella.
Aquí está el /etc/exports
:
/srv/share 169.254.0.*(rw,sync,insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
Haciendo algunas pruebas simples con dd
, aquí es lo que veo:
Directo al disco en el servidor (~800MB/s)
~$ dd if=/dev/zero of=/tmp/testfile bs=5120 count=100000
100000+0 registros dentro
100000+0 registros fuera
512000000 bytes (512 MB, 488 MiB) copiados, 0.62477 s, 820 MB/s
NFS desde el servidor (~660 MB/s)
Conecté un cliente en el servidor para ver cómo se desempeñaba con un cliente Linux y eliminando la red de la ecuación.
$ sudo mount -t nfs -o rw 169.254.0.1:/srv/share /tmp/share
$ nfsstat -m
/tmp/share desde 169.254.0.1:/srv/share
Flags: rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=169.254.0.1,local_lock=none,addr=169.254.0.1
$ dd if=/dev/zero of=/tmp/share/test_file bs=5120 count=100000
100000+0 registros dentro
100000+0 registros fuera
512000000 bytes (512 MB, 488 MiB) copiados, 0.76516 s, 669 MB/s
Desde Macbook Pro a través de Thunderbolt (~150MBps)
Intenté emular la conexión de cliente NFS por defecto desde Linux, pero el cliente Mac no soporta las mismas opciones. He probado vers=3
e incluso async
, pero nunca logro que sea mucho más rápido que esto.
$ sudo mount -t nfs -o rw,vers=4,rsize=1048576,wsize=1048576,hard,proto=tcp,timeo=600,retrans=2,sec=sys 169.254.0.1:/srv/share /srv/share
$ nfsstat -m
/srv/share desde 169.254.0.1:/srv/share
-- Opciones de montaje originales:
Banderas generales de montaje: 0x0
Parámetros NFS: vers=4,proto=tcp,hard,rsize=1048576,wsize=1048576,timeo=600,retrans=2,sec=sys
Ubicaciones del sistema de archivo:
/srv/share @ 169.254.0.1 (169.254.0.1)
-- Parámetros actuales de montaje:
Banderas generales de montaje: 0x4000000 multilabel
Parámetros NFS: vers=4.0,proto=tcp,port=2049,hard,nointr,noresvport,callback,negnamecache,nonamedattr,noacl,noaclonly,locks,noquota,rsize=65536,wsize=65536,readahead=16,dsize=32768,nordirplus,nodumbtimr,timeo=600,maxgroups=16,acregmin=5,acregmax=60,acdirmin=5,acdirmax=60,nomutejukebox,noephemeral,nonfc,sec=sys
Ubicaciones del sistema de archivo:
/srv/share @ 169.254.0.1 (169.254.0.1)
Banderas de estado: 0x0
$ dd if=/dev/zero of=/srv/share/testfile bs=5120 count=10000
10000+0 registros dentro
10000+0 registros fuera
51200000 bytes transferidos en 0.337533 segundos (151688873 bytes/s)
Dado lo rápido que es la red, parece que debería poder obtener velocidades 3-4 veces más rápidas de lo que veo desde el Mac. ¿Cómo puedo mejorar el rendimiento?