Looking for Guidance on Enhancing Resource Allocation and XCP-ng Performance
-
Hello Everyone ,
I'm looking for some advice on how to maximise my virtual environment's performance and resource allocation as I'm relatively new to XCP-ng.
Here's a quick rundown of my current configuration:
Hardware:
- Dual 128GB DDR4 Intel Xeon E5-2690 v4 processors
- Two 1TB NVMe SSDs in RAID 1 configuration
- Four 4TB HDDs set together in RAID 10.
Network:
10GbE network cards
Software for a managed switch supporting VLANs:
XCP-ng 8.2: Community Edition of Xen Orchestra
Among the virtual computers I have operating are:
- A Windows Server 2019 virtual machine for file sharing and Active Directory.
- Personal cloud storage using Nextcloud on a Linux virtual machine.
- a tiny Ubuntu virtual machine (VM) for development and application testing.
The system performance isn't as good as I'd like to see, especially when there are several virtual machines (VMs) running at once.
I have the following specific concerns and inquiries:
Storage Performance: My servers appear to have poor I/O performance even with NVMe SSDs. Should I consider making any particular tweaks or setups to enhance storage performance?
CPU and Memory Allocation: How should virtual machines (VMs) be allocated CPU cores and memory to guarantee they have the resources they need without going overboard?
Network Configuration: Are there any specific network configurations or XCP-ng optimisations that can aid increase aws network performance and lower latency in a 10GbE setup?
General Optimisation: Are these any other general guidelines or best practices that I might be overlooking in order to enhance the performance of XCP-ng?
Thank you in advance.
-
Hi,
You are probably over thinking things. Also, you need to set a clear level of performance you need, so we can tell if there's no way to reach it (or via different "workarounds"). By default, there's nothing to try to tune on XCP-ng, it's meant to be OK for everyone, as it's a virtualization appliance and not a general distro (obviously, it's not perfect for everyone, but the amount of time to get to your target might be unrealistic, and this is only if you have some concrete expectations).
It's really hard to tell in your case, because we have 0 indication on what's "good" for you and what's not. There's some very general guidelines, like if you really want to use all your VMs at 100% at once, obviously you need to get a total vCPUs <= pCPUs on your machine, including the dom0.
-
Storage Performance: Storage Performance in a single VM on a single disk is very slow on xen compared to hyper-v and vmware. this is because of the single-thread design of tapdisk. so nvme performance on xen will be cpu-core-ghz limited.
there are only some workarounds like raid-0 in vm but no general satisfactorily solution. it does not seem that this will change soon.