Struggling with CIFS performance

Status
Not open for further replies.

Idiotzoo

Explorer
Joined
Mar 11, 2013
Messages
55
So I'm another poor ignorant soul struggling with disappointing cifs performance. I'm running 9.1.1

Here's the machine:
Asus M5a97 LE R2.0 motherboard
AMD FX6300 CPU
16GB ECC RAM
M1015 controller (crossflashed to IT mode)
4 x 3TB Seagate desktop disks (plenty of cooling)
HP NC380T NIC

My ZFS pool is a stripe across two mirrored pairs.

From DD and iozone tests I've run my pool seems capable of over 300MB/s and a healthy random read/write performance in iozone too.

I'd expect with this setup to be able to saturate a gigabit connection between a desktop and the freenas box, but I can't... not getting more than about 600mb/s

A real world transfer test of a windows user profile with lots of small files takes 46 seconds to copy to the freenas box. Transferring the same data to a windows server running as a VM on Athlon II x2 250 (much slower cpu) takes 32 seconds. The windows server VM is running with much less ram, slower disks, being limited by the data having to go through the CPU twice and it still bests the freenas box. I'm not sure why...
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
First: is your LAN Realtek. If so, that's quite possibly why. Get an Intel NIC. Those are recommended up and down in the forums for a reason.. they perform!

Second: Copying lots of small files will ALWAYS perform more slowly than a single large file. ZFS has some additional penalties over other file systems because of the extra overhead associated with keeping your file system consistent.
 

Idiotzoo

Explorer
Joined
Mar 11, 2013
Messages
55
The nic is Broadcom on the hp card. I'll try an intel. I know small files will take more processing, and cifs is slow with small files, but I've put the freenas box up against a poor performer and it's done worse.

Is there a way to create lots of small files in the shell to test zfs performance with samba out of the picture?
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
I'm sure you could make a script to do it, but I don't know of one offhand you can just download and use.

Doh, I didn't see your NIC on that list originally.

Generally speaking, if a dd test shows appropriate performance then the server is performing appropriately for your hardware.
 

N00b

Explorer
Joined
May 31, 2013
Messages
83
If you are using bash then the following command will help you create 100 files of same size (10Mb)
for ((i=0; i<100; i++)) do dd bs=1M count=10 if=/dev/zero of=file$i ; done

this one will create files with different (increasing size).
for ((i=0; i<100; i++)) do dd bs=1M count=$i if=/dev/zero of=file$i ; done
 

Idiotzoo

Explorer
Joined
Mar 11, 2013
Messages
55
Thanks folks.... that command is very handy! I've added a mirrored SSD zil and that's transformed the performance. Freenas is now significantly outperforming the VM servers.
 
Status
Not open for further replies.
Top