Improving SMB share

Darkodo

Cadet
Joined
Mar 2, 2020
Messages
3
Hi everyone,

I have created a FreeNAS server inside a proxmox server.
I have read several posts on this topic, and I choose to do a passthrougth of a MBA MegaRAID flashed as mentionned on this site.

The VM have 32 GB of RAM (ECC) and 4 vCPU.

I measured the transfer rate through a samba share of 60 MB/s, and I was wondering if there were a bottleneck.

  • Network tests
I thought first that the virtual network could be the bottleneck. Several thread on the forum incriminate the VirtIO driver of FreeBSD. So I performed some tests.

  • Linux_VM/Linux_VM (iperf3) :
CentOS8>---<VirtIO>---<vmbr>---<VirtIO>---<CentOS8
18,7 Gbits/ses​
CentOS8>---<VirtIO>---<vmbr>---<e1000>---<CentOS8
3,1 Gbits/sec​
CentOS8>---<e1000>---<vmbr>---<e1000>---<CentOS8
1,6 Gbits/sec​

  • LinuxVM/FreeBSD_VM (iperf3) :
CentOS8>---<VirtIO>---<vmbr>---<VirtIO>---<FreeNAS(11.3U1)
16,6 Gbits/ses​
CentOS8>---<e1000>---<vmbr>---<VirtIO>---<FreeNAS(11.3U1)
3,0 Gbits/sec​
CentOS8>---<VirtIO>---<vmbr>---<e1000>---<FreeNAS(11.3U1)
535 Mbits/sec​
CentOS8>---<e1000>---<vmbr>---<e1000>---<FreeNAS(11.3U1) 584 Mbits/sec

  • VM/Laptop (iperf3) :
CentOS>---<VirtIO>---<vmbr>---<I350>--|Cat5E|--<Realtek>---<Ubuntu
941 Mbits/ses​
FreeNAS>---<VirtIO>---<vmbr>---<I350>--|Cat5E|--<Realtek>---<Ubuntu
941 Mbits/sec​


We can see that VirtIO give the best speed rate on FreeNAS, so I choose to use this driver on my VM.

The tests were conducted without the proxmox firewall (poor performance when activated).
No impact of the hardware offloading parameter on FreeNAS.


  • FreeNAS Read/Write performance
I assumed next that maybe the disk itself was the bottleneck. So I performed some more tests and compared them to the expected R/W performance.

  • Actual Raw Read/Write Performances :
dd if=/dev/random of=/mnt/.../testfile bs=4M count=10000

105 MB/s
95 MB/s
99 MB/s
------------------
100 MB/s
dd if=/mnt/.../testfile of=/dev/null bs=4M count=10000

91 MB/s
94 MB/s
93 MB/s
------------------
93 MB/s
dd if=/dev/random of=/dev/null bs=4M count=10000
136 MB/s
137 MB/s
136 MB/s
------------------
136 MB/s

  • Theoretical Read/Write Performances :
Disk
Write (MB/s)
Read (MB/s)
Seagate NAS HDD 3 To ST3000VN000
123​
123​
Seagate BarraCuda 1 TB ST1000LM048
126​
133​

So it appears that I have a small performance degradation on my Read/Write rates compared to the expected ones. Maybe due to the virtualisation.
But from my 60MB/s I can expect better.

  • What is next ?
From my tests, I can tell that my SMB share isn't limited from the network and not from the disks.
What could I do next to try to improve the SMB share rate ?
 

Darkodo

Cadet
Joined
Mar 2, 2020
Messages
3
For information,

I have increased the RAM from 32 to 64 GB with no improvement.

I have seen that AES is not enable on the VM. I will try it.

Would 100MB/s is expectable with a "one disk" dataset?
If I add N disks, would it be N times one disk speed? (without the network limitation).
 

Darkodo

Cadet
Joined
Mar 2, 2020
Messages
3
Final message.

With AES enable on the virtual machine, I manage a fair 80 MB/s. Now it's my laptop disk that becomes limiting so I am satisfied.

To recap the config of the virtual machine ont the proxmox server:
  • Proxmox firewall, must be desable;
  • Processor, add AES flag;
  • Networking, use VirtIO;
  • Disks, passthroug the HBA so FreeNAS has a direct control over them.

I hope this will help some of you guys.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703
Networking, use VirtIO;
You might consider trying the VMXNET driver in Proxmox as FreeNAS has the driver on its side for that and runs well with it.
 
Top