0
1
The problem:
I am getting only ~30MB/s on a gigabit network transferring files from an external enclosure connected to my SOC to my PCs SSD. I would have assumed a higher speed transfer. I am using FTPES and I have also tried SCP both cap at around 30MB/s
Background:
I have a SOC (Odroid XU4) with a gigabit ethernet nic and a USB 3.0 hub. It is connected to a gigabit ethernet managed switch (Cisco sg200-08) which is connected to a gigabit ethernet router (Netgear R8000) which my computer is connected to (which also has a gigabit nic).
Equipment:
SOC: Odroid XU4
External Disks: 4TB 5400 RPM
Switch: Cisco sg200-08
Router: Netgear R8000
Computer: Custom build with gigabit ethernet
Diagram:
SOC -> Gigabit Switch -> Gigabit Router -> Gigabit NIC pc
Now I tested the read speeds from the SOC to the disks:
kevin@ftpbox:~$ sudo hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 2008 MB in 2.00 seconds = 1005.91 MB/sec
Timing buffered disk reads: 364 MB in 3.00 seconds = 121.21 MB/sec
kevin@ftpbox:~$ sudo hdparm -Tt /dev/sdb'
> ^C
kevin@ftpbox:~$ sudo hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 2004 MB in 2.00 seconds = 1003.25 MB/sec
Timing buffered disk reads: 394 MB in 3.01 seconds = 130.74 MB/sec
kevin@ftpbox:~$ sudo hdparm -Tt /dev/sdc
/dev/sdc:
Timing cached reads: 2008 MB in 2.00 seconds = 1005.80 MB/sec
Timing buffered disk reads: 394 MB in 3.01 seconds = 130.83 MB/sec
kevin@ftpbox:~$ sudo hdparm -Tt /dev/sdd
/dev/sdd:
Timing cached reads: 1982 MB in 2.00 seconds = 992.31 MB/sec
Timing buffered disk reads: 394 MB in 3.01 seconds = 130.83 MB/sec
I also tried doing iperf from 2 different machines, my pc running windows, and my router running dd-wrt to my SOC
PC to SOC:
kevin@ftpbox:~$ iperf -c 192.168.1.2 -p 5201
------------------------------------------------------------
Client connecting to 192.168.1.2, TCP port 5201
TCP window size: 20.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.22 port 47193 connected with 192.168.1.2 port 5201
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 0.00 (null)s 2350133821636822 Bytes/sec
kevin@ftpbox:~$ iperf -c 192.168.1.2 -p 5201
------------------------------------------------------------
Client connecting to 192.168.1.2, TCP port 5201
TCP window size: 20.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.22 port 47194 connected with 192.168.1.2 port 5201
^C[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 2.1 sec 0.00 (null)s 2354598378962423 Bytes/sec
kevin@ftpbox:~$ iperf -s
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.22 port 5001 connected with 192.168.1.2 port 63008
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-20.2 sec 14.0 Bytes 5.55 bits/sec
I get similar results from my router to the SOC
Router to SOC:
kevin@ftpbox:~$ iperf -c 192.168.1.1 -p 5201
------------------------------------------------------------
Client connecting to 192.168.1.1, TCP port 5201
TCP window size: 20.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.22 port 58115 connected with 192.168.1.1 port 5201
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 0.00 (null)s 2350254378773930 Bytes/sec
kevin@ftpbox:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.22 port 5001 connected with 192.168.1.1 port 55060
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-64.8 sec 14.0 Bytes 1.73 bits/sec
Here is what ifconfig says about the adapter:
kevin@ftpbox:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:1e:06:31:a6:81
inet addr:192.168.1.22 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21e:6ff:fe31:a681/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5592 errors:0 dropped:4 overruns:0 frame:0
TX packets:3022 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:855874 (855.8 KB) TX bytes:433684 (433.6 KB)
Here is my SOCs adapter capabilities:
kevin@ftpbox:~$ ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00007fff (32767)
drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
Link detected: yes
What is with this low speed? What are somethings I should check? Any Ideas?
At that speed it sounds to me like the gigabit port is hanging off a USB2 controller on the ODroid rather than a dedicated gigabit port on the processor. It might be that the processor only has 10/100 ports available and this is the only way to get faster, even if only by a factor of 3 rather than 10. – Mokubai – 2017-03-08T07:51:50.680
Looking at the schematic (http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825&tab_idx=2) for the board the ethernet is hanging off a USB3 controller port, so you should have pretty much full gigabit ethernet speeds.
– Mokubai – 2017-03-08T08:02:25.287Your iperf tests look like nonsense. 2,354,598,378,962,423 bytes/s = 2354598.38 gigabytes per second which is insane and your "transfer" column shows 0.00 which means that no data was transferred, I.e. there was no iperf server to connect to and reply with data acknowledgements. Run iperf as a server on your PC (iperf -s) and do a proper managed test: https://openmaniak.com/iperf.php
– Mokubai – 2017-03-08T08:13:27.857@Mokubai I actually did this in the tests. I set up servers on both the router and on the pc. This was the test that gave me those crazy speeds. When I test the SOC with iperf -s I get a really low transfer speed (measured in bits/sec). – Kevin – 2017-03-08T21:52:30.957