Another RDS server?
-
@siringo said in Another RDS server?:
With regards to physical CPU's. Would you upgrade the current CPU to something with more cores or add a 2nd CPU?
You might have to consider the budget here.
But in general you get better performance with one 16 core CPU than two 8 core CPUs.
It's because one CPU only has access to half the RAM and some of the I/O. So when a CPU need to communicate with something that is connected to the other CPU, the data has to pass through the interconnect between the CPUs. That's a bottleneck and slows it down.
-
@Mario-Jakovina Thanks Mario. I've limited the RAM allocation of this 2nd VM to no more than 16GB. I'll monitor it and see what happens. Thanks.
-
@Pete-S Thanks very much for your help Pete-S, it's greatly appreciated.
I think I'll go and look for a 16 core CPU to replace the current 8 core, depending on price of course.
Thanks once again for all your help.
-
-
When talking about vCPU not add to more physical cores, where do threads come into play?
e.g 12 core cpu (24 threads). So are we saying the VMs running should only have vcpus adding up to less than the physical 12 cores? Or can we go higher due to the 24 threads?
(I'll have a read of the links tomorrow in work, it's Sunday morning and I'm on my phone so don't want to read it on here ) -
@hobbit666 said in Another RDS server?:
When talking about vCPU not add to more physical cores, where do threads come into play?
e.g 12 core cpu (24 threads). So are we saying the VMs running should only have vcpus adding up to less than the physical 12 cores? Or can we go higher due to the 24 threads?
(I'll have a read of the links tomorrow in work, it's Sunday morning and I'm on my phone so don't want to read it on here )Hyperthreads are just two queues for each core. By having two queues the CPU can be a little more effective in executing because one thread can sometimes use resources the other thread is not using.
The hypervisor's CPU scheduler knows this though and tries to make the best out of it. So a 4 vCPU VM will be scheduled to run on 4 different physical cores, as long as it's possible.
The exact algorithm used for scheduling jobs depends on the hypervisor and some hypervisors have different schedulers to pick from as well.
Regardless of that, it's still wise to make vCPU decision based on the number of physical cores per CPU and not logical cores in the system. That will cause the least amount of collisions in the system. But it always a good idea to try different options and see what the results are.
-
@travisdh1 said in Another RDS server?:
Check out
https://www.hpe.com/us/en/insights/articles/10-virtualization-mistakes-everyone-makes-1808.html
and
https://www.sqlskills.com/blogs/jonathan/cpu-ready-time-in-vmware-and-how-to-interpret-its-real-meaning/
if you want to know why.Looks good reading.
Really need to do more on tweaking on our environment. -
Just remembered this client has a Server sitting idle.
It has a Xeon something, 24GB RAM, Server Std 2016.
I'm thinking, would it be worthwhile building that as a new or 2nd RDS server??? Or moving the RDS VM onto this server?
Changing the RDS server to 4 vCPUs has not made any difference except that I ave a slightly higher CPU load now.
-
@siringo 1. What does your other VM (non-RDS) do, and what OS it uses?
2. What app uses largest part of your CPU load on RDS VM?I would avoid having 2 RDS VMs in your case, I would rather move other VM to this "server sitting idle", and give full resources to RDS VM on main (8-core) server.
-
@travisdh1 said in Another RDS server?:
@Mario-Jakovina said in Another RDS server?:
@JaredBusch said in Another RDS server?:
None should have 8 because of his CPU only have 8 cores.
Does it mean that in my case (4-core CPU) VM should use only 3 vCPU even if it is only VM on the host?
Yes, this is correct.
@JaredBusch said in Another RDS server?:
Basically, everything should be only 1 or 2 vCPU unless specifically noted otherwise.
For DB servers and RDS servers, we use all available cores to better serve more users at the same time. Is something wrong with that?
While you can assign all cores to every virtual machine, it is a horrible idea. The virtual machines will be doing next to nothing but waiting on each other to finish background processes.
Check out
https://www.hpe.com/us/en/insights/articles/10-virtualization-mistakes-everyone-makes-1808.html
and
https://www.sqlskills.com/blogs/jonathan/cpu-ready-time-in-vmware-and-how-to-interpret-its-real-meaning/
if you want to know why.After reading this articles, I cannot find proof that we have problem with 1:1 virtualization, and giving all physical cores to VM.
Second article is talking about serious overprovisioning (>2vCPU per pCPU) with lots of VMs on single host, and it is not our case.
We have 4vCPU VM on 4-core host, and we do not have issues with CPU speed even on multi-core CPU stress tests. -
Thanks everyone for the help.
I've been speaking with the client and the app that is consuming excess resources will be removed as it's not a business requirement. This should solve the problem.
Once again, thanks to everyone who contributed.