0

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?

4
  • 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
    Mar 8, 2017 at 7:51
  • Looking at the schematic (hardkernel.com/main/products/…) for the board the ethernet is hanging off a USB3 controller port, so you should have pretty much full gigabit ethernet speeds.
    – Mokubai
    Mar 8, 2017 at 8:02
  • Your 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: openmaniak.com/iperf.php
    – Mokubai
    Mar 8, 2017 at 8:13
  • @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
    Mar 8, 2017 at 21:52

1 Answer 1

1

AND here is the answer:

I should have mentioned I am using vsftpd using tls. I had the cipher=HIGH flag on. This was killing the cpu on the SOC. I disabled ssl on vsftpd and I was getting 70MB/s

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .