# Slow File Transfer Speeds



## nick22_3 (Jul 26, 2018)

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;

```
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!


----------



## nihr43 (Jul 26, 2018)

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.


----------



## jpierri (Jul 26, 2018)

> 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).


----------



## nick22_3 (Jul 26, 2018)

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     -     -


----------



## nick22_3 (Jul 26, 2018)

nihr43 said:


> 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?


----------



## nihr43 (Jul 26, 2018)

nick22_3 said:


> 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`.


----------



## jpierri (Jul 26, 2018)

nick22_3 said:


> 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.


----------

