How many cores for unRAID system.


Recommended Posts

I started using unRAID to transform my Gaming PC into file server and gaming PC in one. 9900k @ 4.9, 32GB RAM.

 

I read a little about how to set up VMs and other things and stumbled upon repeated info that +- "1 hyperthreaded core (1 core -> 2 threads) should suffice for the unRAID system itself" and other threads can be allocated to my Gaming VM.

 

What I noticed is that with file transfers to and from the disk, like preclear, or just transferring data from one drive to another using rsync or in Windows, the 1 thread is getting MAXED. Both threads go to 100% and stay like that pretty much all the time with some fluctuations. That caused my Gaming VM to either have some hiccups in the FPS or some weird audio lags. I leave around 4GB or RAM for the unRAID itself and the rest is allocated to the VM.

 

I'm not doing anything super unusual (I think) as there are just 6 HDDs in my array and my Windows VM there, no dockers, no plex or other things that could eat up the resources.

Is this behaviour where the system itself needs 2c/4t of the horsepower to function properly? I read in many places that 1c/2t should be enough. I'm using CPU Isolation to isolate my unRAID cores and VM cores to make sure that they are where they should be.

 

1c/2t unRAID + 7c/14t Windows VM -> Can cause lags and some performance decrease when I transfer files, clear HDDs

2c/4t unRAID + 6c/12t Windows VM -> Works without problems so far.

No Isolation, 7c/14t Windows VM -> Can have a lot of hiccups in games. Probably when the work is shared with threads on unRAID and VM itself causing it to have too much to work on it. This is the reason I went with CPU Isolation thing.

 

Assigning the 2 cores for unRAID solves the problem but that also means my VM has less cores :/ Do you think it is normal or should I look into it?

Link to comment

It really depends how you have the cores/threads assigned.  It seems that unraid uses the first core (or thread) for it's tasks so that should always be left for unraid. After that, you can assign the rest to whatever you want.  I'm sure you know this, but you should always assign threads with their corresponding cores to get the best performance.

 

I always allocate my cores to my VMs from the bottom up

Link to comment
30 minutes ago, Delgon said:

I started using unRAID to transform my Gaming PC into file server and gaming PC in one. 9900k @ 4.9, 32GB RAM.

 

I read a little about how to set up VMs and other things and stumbled upon repeated info that +- "1 hyperthreaded core (1 core -> 2 threads) should suffice for the unRAID system itself" and other threads can be allocated to my Gaming VM.

 

What I noticed is that with file transfers to and from the disk, like preclear, or just transferring data from one drive to another using rsync or in Windows, the 1 thread is getting MAXED. Both threads go to 100% and stay like that pretty much all the time with some fluctuations. That caused my Gaming VM to either have some hiccups in the FPS or some weird audio lags. I leave around 4GB or RAM for the unRAID itself and the rest is allocated to the VM.

 

I'm not doing anything super unusual (I think) as there are just 6 HDDs in my array and my Windows VM there, no dockers, no plex or other things that could eat up the resources.

Is this behaviour where the system itself needs 2c/4t of the horsepower to function properly? I read in many places that 1c/2t should be enough. I'm using CPU Isolation to isolate my unRAID cores and VM cores to make sure that they are where they should be.

 

1c/2t unRAID + 7c/14t Windows VM -> Can cause lags and some performance decrease when I transfer files, clear HDDs

2c/4t unRAID + 6c/12t Windows VM -> Works without problems so far.

No Isolation, 7c/14t Windows VM -> Can have a lot of hiccups in games. Probably when the work is shared with threads on unRAID and VM itself causing it to have too much to work on it. This is the reason I went with CPU Isolation thing.

 

Assigning the 2 cores for unRAID solves the problem but that also means my VM has less cores :/ Do you think it is normal or should I look into it?

 

There's a degree of trial and error with all these things. If you reserve 2x cor3es for unRaid, at the expense of your VM, but VM is smoother, I'd take that as a win. 

 

Have a look at this thread if you haven't seen it - some good info and tweaks here;

 

You also haven't mentioned if you have any dockers or plugins running? If so, these will need some resources as well.

 

Also, be aware that copy operations to the array require unRaid to calculate parity. This is an intensive process that likely explains some of the CPU max you observe (but not all). You can alleviate this by correctly configuring the cache disk and offloading to the array at a more convenient time (middle of the night, or whenever you're not gaming). You might know all this, of course, but just in case.

 

 

 

 

 

Link to comment
55 minutes ago, Delgon said:

Assigning the 2 cores for unRAID solves the problem but that also means my VM has less cores :/ Do you think it is normal or should I look into it?

The 1 core for Unraid advice was based on assumption that you run 1 parity, no encryption, no docker, no plugin.

Are you running dual parity and/or encryption?

 

Another potential reason is that you have some underlying issues with your disk(s). That can manifest as high IO wait, which shows up as high core load (as the core can't do anything while waiting for IO). This affects all SATA devices but particularly more perceivable with HDD so perhaps something you might want to have a look.

 

If you have an NVMe SSD that you can pass-through to the VM as a PCIe device then that will also help as the IO over that NVMe doesn't go through Unraid and thus isn't quite affected by Unraid IO load.

 

Have a read through the topic meep quoted as it has some useful information there e.g. emulator pin so you can tune things a little more as well but if the core loads 100% then there will be lag. Lag under heavy IO is a more or a less and not a yes or no thing.

 

With regards to how many cores for your VM vs Unraid, remember the config with the best performance isn't necessarily one with the most consistent performance. With gaming, you generally prefer consistent performance so having fewer cores assigned to your VM isn't necessarily a bad thing.

 

Edited by testdasi
Link to comment

Thanks for the reply.

I do not use any disk as a Parity, data on those drives is not that important, have a backup elsewhere, so there should be just read/write instructions. The Windows VM also uses passthrough SSD so there should not be any work done here too by the unRAID.

 

I do not have any Dockers or other VMs running. Just unRAID + Windows VM, that's it.

I have some plugins but those are rather basic, nothing that should rly hug the CPU resources afaik:

CA Auto Update Applications
Community Applications
Dynamix System Statistics
Dynamix System Temperature
Fix Common Problems
Nerd Tools
Preclear Disks
Statistics
Unassigned Devices
Unassigned Devices Plus
User Scripts
VFIO-PCI CFG

For example, those are the 2 cores (4 threads) that are assigned to the unRAID and the system is running VM and doing just a preclear of 1 HDD. It adds up to above 200% (247) so ye, in some cases (not always) the CPU usage of unRAID needed more than 1c/2t.

image.thumb.png.718d6349e94f2fdec81d50439974cbca.png

 

 

Thank you for pointing me to another thread, I'll definitely also read it and test things out, a lot of information everywhere about it so it is hard to read everything :)

Edited by Delgon
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.