I have a very basic and newbie question. I was told that we have a "Gigabit Network". So, I ran a quick scp test by copying a file to another machine and the transfer rate is only 35MB/sec.
Shouldn't the transfer rate be near the 1GB/sec?
Also, is there a command line that will tell me that I have a "Gigabit network"? Eg. will ifconfig tell me that?
GigaBIT Ethernet is 1 billion BITS per second. Theoretical maximum transfer is 125MB/sec.
Having said that, your 35MB/sec is a bit slow, but encryption is going to slow down SCP file transfers and that probably accounts for it.
Encryption aside, any file transfer is a poor network benchmark as your I/O subsystem may be bottlenecking the transfer, though. You mention
ifconfig
, so I assume you're running some *nix OS. Have a look at thettcp
utility. It gives a nice measure of TCP throughput on your network.Gigabit is not Gigabyte. The best case transfer speed is 125MB/s (1000 gigabits / 8).
SCP is a poor tool to measure bandwidth. You have the overhead of the encryption, you may have compression enabled, and you will have to take into account the speed of the drives on both the source and destination.
Iperf is a much better tool to measure bandwidth.
If you want to see your link speed use
ethool {interface}
ormii-diag {interface}
if you are using Linux.The bandwidth measurement you got with ping would most likely be even less accurate then a TCP or UDP based test like ttcp or iperf use. If you really wanted to try it you would need to start a capture in something like wireshark/tcpdump and do a flood ping
ping -f
against another host, then you analyse the capture and see how much ICMP traffic was passed during a time period. The problem is that several devices de-prioritize ICMP.Transfer speeds will only be as fast as the slowest of the client and recipient system, which is a combination of processor/memory speeds and harddrive access times.
SCP also adds a lot of overhead for all the encryption.
Also, Ethernet seldom gives you your entire line speed. I've very rarely seen a full 125MB/s on a server, and that test was purely synthetic. In real world scenarios I've seen over 100MB/s frequently, and even 120MB/s a time or two. The caveat there is that I was dealing with servers doing disk operations (multiple backup-to-disk streams going to fast Fibre Channel storage).
I've seen 125MB/s a lot more often on our router and switch uplink interfaces. They're just shovelling packets around, not doing anything significant with them like I was. A true throughput test will be as pure network as you can get.