Eu tenho duas caixas de linux ligadas a um switch gigabit. Ambos possuem placas de rede gigabit, cabos são cat7.
Testar a rede com o iperf mostra uma conexão rápida, mas a transferência de arquivos com compartilhamento rsync, scp ou nfs é lenta.
Estou testando com um arquivo de 1 GB.
iperf result:
Client connecting to odroid, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.26 port 58788 connected with 192.168.1.32 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 979 MBytes 821 Mbits/sec
A velocidade de transferência com rsync, scp ou nfs é de aproximadamente ~ 13Mb / s
scp:
scp bigfile odroid:/mnt/usb1/ [10:19:12]
bigfile 57% 590MB 12.2MB/s 00:35 ETA^CKilled by signal 2.
rsync:
rsync --progress bigfile /mnt/usb1/
bigfile
44,695,552 4% 12.15MB/s 0:01:11 ^C
nfs:
binaryplease➜~(master✗)» time cp bigfile /mnt/nfs/usb1/
cp -i bigfile /mnt/nfs/usb1/ 0.01s user 0.94s system 1% cpu 1:11.06 total
1024MB / 71sec = 14,42 MB / s
Como o teste iperf mostra uma conexão de rede rápida, assumi um problema com a lentidão dos dispositivos de armazenamento, mas esse não parece ser o caso:
Cliente, SSD, interno:
binaryplease➜~(master✗)» sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 20344 MB in 2.00 seconds = 10181.50 MB/sec
Timing buffered disk reads: 1498 MB in 3.00 seconds = 498.98 MB/sec
binaryplease➜~(master✗)» dd if=/dev/zero of=test oflag=direct bs=8M count=64
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 2.03861 s, 263 MB/s
binaryplease➜~(master✗)» dd if=test of=/dev/null iflag=direct bs=8M [12:29:01]
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 1.11392 s, 482 MB/s
Servidor, unidade USB 3.0, externa:
➜ ~ git:(master) ✗ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1980 MB in 2.00 seconds = 991.66 MB/sec
Timing buffered disk reads: 266 MB in 3.01 seconds = 88.27 MB/sec
➜ usb1 dd if=/dev/zero of=test oflag=direct bs=8M count=64
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 6.53386 s, 82.2 MB/s
➜ usb1 dd if=test of=/dev/null iflag=direct bs=8M
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 7.13567 s, 75.2 MB/s
SO no cliente (arco Linux):
Linux binaryplease-laptop 4.3.3-2-ARCH #1 SMP PREEMPT Wed Dec 23 20:09:18 CET 2015 x86_64 GNU/Linux
SO no servidor (servidor Ubuntu para o odroid):
Linux odroid 3.10.92 #1 SMP PREEMPT Tue Nov 17 00:15:24 BRST 2015 armv7l armv7l armv7l GNU/Linux
Em ambos os sistemas, nem a CPU nem o RAM estão no máximo.
Se eu interpretar os resultados corretamente, a velocidade de gravação da unidade de servidores (82,2 MB / s) deve ser facilmente correspondida pela rede. Como a transferência de arquivos é tão lenta?
Espero que as informações fornecidas sejam suficientes e alguém possa me ajudar a encontrar o gargalo.
Obrigado.