Slow network transfers?

I have a server sitting in a datacenter with RL8 on a 1 Gbps connection. At home, I have 1.5 Gbps, and at my office, I have 1 Gbps.

When I’m trying to download a file from my server (no substantial load on either CPU or network), either from my office or from home, either over HTTPS or SSH (sftp), the transfer peaks at about 15 MB/s, and averages to about 12-13 MB/s. This is obviously far far less than what I should expect. If I do a multiple connection download (i.e. aria2c -s16 -x16 …) then the speed is much more reasonable, around 90 MB/s.

To me it seems like there is something limiting the bandwidth allowed for each TCP connection. Does anybody have any idea where to look in order to figure out what might be creating this bottleneck?

Use mtr.

That command seems tied to latency. I have no issue with latency, the issue is with throughput.

No, we use it to test issues with bgp routing and sporatic outages esp. with cable internet.

Hi @Larry ,

First i want to clarify that your link speed at datacentre is around 1 Gbps and you are getting speed at your next and is around 90 MB/s which come out to 750Mbps or around 0.75 Gbps. So i think you are getting reasonable fare speed if you include all other TCP/IP overhead.

I Just want to add here that if you are transferring small, small files your are going to observe lower speed due to tcp overhead. I will suggest You, try to transfer any big file like 7 to 8 GB iso file and you will observe higher transfer speed. I think this information will add more understanding to your problem.

I just want to know:

  1. How you are measuring your transfer speed?
  2. Are you transferring smaller files?

No, you’re misread what I wrote.

In order to reach around 750 Mbps, I need many simultaneous parallel connections.
With just a single connection, only gets about 100 Mbps.

This is while transferring a single large file, roughly 10 GB.

  1. aria2c, sftp, wget, etc., all output transfer rate in MB/s. aria2c is the only way I can get the higher transfer speed, since it can download using up to 16 parallel connections (“aria2c -s16 -x16 …”)
  2. No, large file only. As you’ve pointed out, its obviously impossible to accurately measure transfer speed of small files.

In your original post, I think you’re saying that in all cases, the “server” is always the one in the data centre?

Have you tried the same test, e.g. using the “office” as the server, and downloading from home? (to cut out the data centre).

That test has no relevance.

That command seems tied to latency. I have no issue with latency, the issue is with throughput.

We would like to see some diagnostic data. Run some of the tests here from home.

[Blockquote]TestMy.net is a powerful broadband speed test that will test your Internet, calculate your transfer rate and output accurate, reliable and easy to understand results. TestMy.net is an independent third party and is not affiliated with your Internet service provider. Our results are unbiased because TMN has no vested interest in the outcome of your speed test.

Team looking at this its the old classic upload vs download speeds. It is always a combination of IOP’s throughput and connection count + FILE SIZE. Very simple way to test, First check the route between the client and server actually follows what you think it does.

  1. Run traceroute command to check

  2. I always then create a simple 1G file with DD (not sparse) and measure the single thread copy time betwween the hosts.

  3. Finally with a combinarion of iPERF command you can spot the bottleneck and black hole.

No guessing facts over “i think”

node2> iperf -s -w 300k

Server listening on TCP port 5001
TCP window size: 300 KByte

[ 4] local port 5001 connected with port 6902
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.2 sec 20.9 MBytes 16.5 Mbits/sec

[ 4] local port 5001 connected with port 6911
[ 5] local port 5001 connected with port 6912
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-10.1 sec 21.0 MBytes 16.7 Mbits/sec
[ 4] 0.0-10.3 sec 12.0 MBytes 9.4 Mbits/sec

node1> ./iperf -c node2 -w 300k

Client connecting to node2, TCP port 5001
TCP window size: 299 KByte (WARNING: requested 300 KByte)

[ 3] local port 6902 connected with port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.2 sec 20.9 MBytes 16.4 Mbits/sec