Slow File Transfer Speeds

Hi,

I am trying to copy 6 TB worth of data from a FreeBSD server to a Windows server and I am only getting between 11 - 20 MB/s speed. I am connected through a samba share, but I get the same speeds if I copy the files from SFTP and FTP. I've checked the switch configuration and the ports speed is set to Auto, with a status of 1000 Mbps Full Duplex. I have copied files from another server to the Windows server, and I can get a speed of about 60 MB/s. I've also ran the following command on the FreeBSD server; ifconfig igb0 -rxcsum -txcsum -tso -lro. After running that command, I noticed the speed went up to 40 MB/s, but after a few seconds it went back down to a max of 20 MB/s. Is there anything else I can do?

Here is my current ifconfig;
Code:
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether 30:85:a9:19:01:81
        inet 192.168.4.70 netmask 0xffffff00 broadcast 192.168.4.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
Thanks in advance!
 
6TB? If this is a really terribly fragmented and full zfs pool maybe thats all you can expect. Do you have any idea of read performance locally? Also, gzip would do this.

If the above is true, and these are small files, and its trying to sync everything, that is all I would expect.
 
Is there anything else I can do?
First of all check if netstat -I igb0 -W is reporting errors. The counters Ipkts and Opkts will increase, specially during your file transfer, but Ierrs, Idrop, Oerrs and Coll should not. Preferably they should stay zeroed.

If you have a managed switch, check these counters on the port your FreeBSD host is plugged (they will have different names there, according to the manufacturer of the equipment).
 
Here is the output of netstat;
Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs Coll
igb0 1500 <Link#2> 30:85:a9:19:01:81 493835900 0 0 969806626 0 0
igb0 1500 192.168.4.0 192.168.4.70 466285380 - - 967371513 - -
 
6TB? If this is a really terribly fragmented and full zfs pool maybe thats all you can expect. Do you have any idea of read performance locally? Also, gzip would do this.

If the above is true, and these are small files, and its trying to sync everything, that is all I would expect.

The data is located on a zfs pool, which has a compress ratio of 1.62x. The size of the files are around 521 KB. How do I determine the read performance?
 
The data is located on a zfs pool, which has a compress ratio of 1.62x. The size of the files are around 521 KB. How do I determine the read performance?

Yeah, millions of 521KB files is certainly not best case scenario for a network transfer. Could be worse though.

To really get a good idea of your read speed with your real data, you could do something like create a large ram disk, temporarily disable your ARC, cp -R one of your data directories, and take a peek at `zpool iostat -v 1`.
 
Here is the output of netstat;
Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs Coll
igb0 1500 <Link#2> 30:85:a9:19:01:81 493835900 0 0 969806626 0 0
igb0 1500 192.168.4.0 192.168.4.70 466285380 - - 967371513 - -
If the port on the switch side is not increasing error counts too, then it is probably not a network issue.
 
Back
Top