0

So I am trying to setup gigabit lan and be able to transfer files across computers at over 100 MB/s. But I can only achieve 20-25 MB/s. My setup is the following: - Two machines: a brand new laptop with an NVME drive (read speeds over 3000 MB/s) and a desktop (a bit old but has SATA 3 SSD (Kingston A400, read speeds around 420 MB/s), gigabit ethernet ports, and no CPU bottleneck).

I have both computers connected with CAT5e cables to the router (my ISP has a all in one router, ONT, router and wifi). I managed to samba share a folder on the desktop PC, with a single 6GB ISO file, and downloaded it from the laptop. However, the transfer speed is 20-25MB/s.

Note that both computers have gigabit connection (i checked it) and even the config page of the router says that the ports of the laptop and desktop are enabled with gigabit connection. Still the transfer speed is slow.

Any thoughts? The only thing that could be troublesome is the ethernet dongle on the laptop, but it has gigabit speeds and it appear correctly

Thank you!

1
  • The link speed is only the upper limit of the achievable throughput. That being said, you should use something like iperf to test.
    – Daniel B
    Apr 21, 2020 at 13:13

1 Answer 1

0

Be careful about mixing up bandwidth (the rate of network data you can transmit on a network interface, in this case 1 gigabit) with throughput (the amount of data you can actually push through a particular system).

The test you are doing does not measure the LAN speed, it's measuring the overall throughput of a Samba server, a Samba client, and the disk I/O required to read the file on the server side and to write the file on the client side, and also the performance of the SMB protocol used to transfer the files. All of these factors add up, especially the performance of the SMB protocol and the time spent writing the destination file.

To test JUST the network speed, you need a specialized utility that's designed to generate and receive network traffic without doing any disk I/O or anything else that might slow the process down. The ttcp utility is one such tool, try using that on both machines to test your bandwidth (or iperf as suggested in the comments). Note that you're still not going to see 1000 Mbps transfer rates - there is always some overhead for the framing of the Ethernet packets and for the IP protocol - 800 or 900 Mbps is more likely. See this page for a more complete discussion of overhead and how much throughput you can expect to see on a gigabit Ethernet connection.

Another tip - my rule of thumb when translating between bits per second (network bandwidth) and bytes per second (payload bandwidth such as file transfers) is to divide or multiply by ten, because to transmit an 8-bit byte over the network usually requires around 10 bits of actual data on the wire due to packet framing. So your current speeds of 20-25 MBps (bytes per second) are roughly equivalent to 200-250 Mbps (bits per second).

2
  • Without knowing more about the exact config on both machines, it's hard to say what's going on. The fact that you're trying to download a 6GB file can be a factor too, because it's not as easily fragmentable as a big series of smaller files, so it's bound to be some ups and downs. People think a Gigabit link means you're consistently going to be able to transfer 1GB worth of files for each second that elapses, but that's in a vacuum. Take caching on both ends into account, factor in a few other details, and you get a good, steady 250-to-300MBps.
    – user1019780
    Apr 21, 2020 at 13:40
  • Thanks for the reply. I know that gigabit isnt 1 GB/s. I was wondering how samba drives can be increased.
    – ajomc
    Apr 22, 2020 at 8:41

You must log in to answer this question.

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