Hi Community,
I just started and set up my first FreeNAS box based on a slightly old Fujitsu MX130 S2 with an AMD Opteron 3280 (8 core 2.4Ghz) and 16GB RAM. The box has a TDP of 65W (excluding the drives), so a perfect little storage for my home office I thought.
The problem is that I do not see a good performance over the network (say, from my Mac) using a SMB share to access it.
The pool itself I created is a "Mirror" (not sure how this is correctly called) using two Seagate ST4000 IronWolf 4TB SATA 6GB/s disks. I also added a log drive (SanDisk SSD Plus 240GB) and a cache drive (SanDisk SSD Plus 240GB as well).
For networking, I found an (also "slightly" outdated Chelsio 10GB card that I connected with a 10GB twinax to my core switch (Ubiquiti US-16-XG, 12x10GB SFP+ + 4x 1/10GB RJ45). The Mac is connected to another switch using a 1GB link in my office. The two switches are connected via a 10G fibre link.
Now, in order to find a way to measure the performance instead of relying on my gut feeling about file transfers not being fast enough for this setup, I use a tool called fio, both on my Mac and on the FreeNAS box as well.
Here are the results when I run it on the CLI of the FreeNAS server:
READ: bw=3124MiB/s (3276MB/s), 3124MiB/s-3124MiB/s (3276MB/s-3276MB/s), io=8192MiB (8590MB), run=2622-2622msec
And here are the results when I run it on the Mac in a shell, using the mounted Samba share for the very same pool:
READ: bw=47.8MiB/s (50.1MB/s), 47.8MiB/s-47.8MiB/s (50.1MB/s-50.1MB/s), io=8192MiB (8590MB), run=171475-171475msec
I used this fio command:
fio --name=seqwrite --rw=read --direct=1 --bs=8k --numjobs=8 --size=1G --runtime=300 --group_reporting
It produced a lot of additional output, but I tried to keep this post short - let me know if there is anything in addition to the results I posted.
I am happy to share more details and I would be very grateful if you could point me to a wiki, website or document that describes in more detail how I can find out where the problem is. I obviously do not expect the same performance over the network compared to accessing a pool locally, but I was hoping to achieve more than 50MB/s to be honest.
My questions would be:
a) do you see any problems with the hardware I chose?
b) am I measuring the performance correctly, i.e. is fio a good tool for this or should I try something else?
c) I understand that the results of my little test seem to indicate that there is a problem with the network performance and not the hardware itself, is that correct?
d) If c) is correct, what can I try and look for next?
Apologies if this is not the right place to post it, please move my post accordingly or let me know whether I should delete/repost it myself in the right spot. And thank you everyone for your support.
Heiko
I just started and set up my first FreeNAS box based on a slightly old Fujitsu MX130 S2 with an AMD Opteron 3280 (8 core 2.4Ghz) and 16GB RAM. The box has a TDP of 65W (excluding the drives), so a perfect little storage for my home office I thought.
The problem is that I do not see a good performance over the network (say, from my Mac) using a SMB share to access it.
The pool itself I created is a "Mirror" (not sure how this is correctly called) using two Seagate ST4000 IronWolf 4TB SATA 6GB/s disks. I also added a log drive (SanDisk SSD Plus 240GB) and a cache drive (SanDisk SSD Plus 240GB as well).
For networking, I found an (also "slightly" outdated Chelsio 10GB card that I connected with a 10GB twinax to my core switch (Ubiquiti US-16-XG, 12x10GB SFP+ + 4x 1/10GB RJ45). The Mac is connected to another switch using a 1GB link in my office. The two switches are connected via a 10G fibre link.
Now, in order to find a way to measure the performance instead of relying on my gut feeling about file transfers not being fast enough for this setup, I use a tool called fio, both on my Mac and on the FreeNAS box as well.
Here are the results when I run it on the CLI of the FreeNAS server:
READ: bw=3124MiB/s (3276MB/s), 3124MiB/s-3124MiB/s (3276MB/s-3276MB/s), io=8192MiB (8590MB), run=2622-2622msec
And here are the results when I run it on the Mac in a shell, using the mounted Samba share for the very same pool:
READ: bw=47.8MiB/s (50.1MB/s), 47.8MiB/s-47.8MiB/s (50.1MB/s-50.1MB/s), io=8192MiB (8590MB), run=171475-171475msec
I used this fio command:
fio --name=seqwrite --rw=read --direct=1 --bs=8k --numjobs=8 --size=1G --runtime=300 --group_reporting
It produced a lot of additional output, but I tried to keep this post short - let me know if there is anything in addition to the results I posted.
I am happy to share more details and I would be very grateful if you could point me to a wiki, website or document that describes in more detail how I can find out where the problem is. I obviously do not expect the same performance over the network compared to accessing a pool locally, but I was hoping to achieve more than 50MB/s to be honest.
My questions would be:
a) do you see any problems with the hardware I chose?
b) am I measuring the performance correctly, i.e. is fio a good tool for this or should I try something else?
c) I understand that the results of my little test seem to indicate that there is a problem with the network performance and not the hardware itself, is that correct?
d) If c) is correct, what can I try and look for next?
Apologies if this is not the right place to post it, please move my post accordingly or let me know whether I should delete/repost it myself in the right spot. And thank you everyone for your support.
Heiko