Question about CPU choice

websmith

Dabbler
Joined
Sep 20, 2018
Messages
38
Hi,

I have tried two different CPU's for my FreeNAS server, but I cannot figure out which servers my purpose best.

I am using my FreeNAS exclusively for serving files/iscsi. No transcoding/torrents or anything else, its exclusively a NAS/SAN.

I have tried the Xeon E5-1620v3 and the Xeon E5-2650Lv3.

The E5-1600 series have a higher CPU core speed, but the other have lots of cores and lower CPU speed.

Neither have ever been maxed out for a longer time, but I am wondering if what is best for a straight up NAS/SAN?

Cores Count or Core Speed?

I am wondering if I should buy and try the E5-1650 since it has a couple of more cores than the 1620 and a slightly higher core speed.

Thank you in advance.
 

Heracles

Wizard
Joined
Feb 2, 2018
Messages
1,401
Hey Smith,

The answer to that question is based on a specific point : Single Threaded vs Multi-Threaded.

If you are running Single threaded process, you are better with fewer core running at higher speed.
If you are running Multi Threauded process, you are better with more core despite a lower speed.

An edge case would be if you have a ton of single threaded process. Then to have more core may be better but that is not what you describe here.

So from your description, I would go with faster core in a smaller number instead of more but slower cores.
 

websmith

Dabbler
Joined
Sep 20, 2018
Messages
38
Ok,

So even if I have many (20+) virtual machines running from different servers being served from either NFS or ISCSi you would still take higher Clock count instead of more cores?

None of the virtual machines are running full blast, but more in bursts when something needs to happen, i.e. a mail being sent etc.

I have nothing except for backup that uses excessive CPU, and the CPU is being used for compression.

I have no idea on how NFS/ISCSi is implemented in FreeBSD, if its implemented multithreaded in the kernel or running as simple single threaded applications in user space.
 

Heracles

Wizard
Joined
Feb 2, 2018
Messages
1,401
Hi again,

Are your 20+ VMs hosted in a single ESXi server from which you mounted an iSCSI datastore ? If this is the case, then your situation is only a single iSCSI client connecting your server.

NFS is single threaded. You can start many separate daemon to use many cores, but each one is independant.

Unless you do have a very high number of independent logical clients, I do think that faster cores will help you more than slower ones despite in greater number.
 

anmnz

Patron
Joined
Feb 17, 2018
Messages
286
NFS is single threaded. You can start many separate daemon to use many cores, but each one is independant.
That's not how I understood that it worked -- do you have a reference for that?
 

websmith

Dabbler
Joined
Sep 20, 2018
Messages
38
Are your 20+ VMs hosted in a single ESXi server from which you mounted an iSCSI datastore ? If this is the case, then your situation is only a single iSCSI client connecting your server.
No I have two-three ESXi servers, serving VM's from a NFS share, and also using ISCSi both on the ESXi server and in the VM's itself, so its more than a single client.

It is also my understanding that in FreeBSD the NFS server daemon is single threaded, in comparison to e.g. Solaris where its kernel based and multi threaded.
 

anmnz

Patron
Joined
Feb 17, 2018
Messages
286
Hm OK. Perhaps I have been confused by the fact that nfsd(8) has arguments -n, --maxthreads and --minthreads. Perhaps they are misleadingly named, if I'm now reading the manpage right.
 

Heracles

Wizard
Joined
Feb 2, 2018
Messages
1,401
Hi Anmnz,

The NFS service can start a few instances of the daemon to serve a few requests in parallel, but each one will do a single thing at a time. For that, you should not start more daemon than you have cores because you will not gain anything and even start loosing performance.

When a service is really mutti-threaded, a single daemon will use as many threads as it needs by itself.
 
Top