One of the great features about CloudSigma is the ability to choose optimized server settings that work great right out-of-the-box. At server creation time, if you aren’t using the quick server create tool, you’ll find under the Properties tab an “Optimize for” option. This allows you to tweak your server for Linux, Windows, BSD or even Solaris.
In this blog post we will get a bit under the hood of optimized server settings and explain how they apply to the different cloud server OS flavors. You’ll find the ability to customize some of the deeper level server settings under the Advanced tab of the server detail/server create view in the webapp.
Cloud Server Optimization for SMP Architectures
First off, a little background. There are two different flavors of symmetric multi-processing (SMP) to be aware of: multi-core and multi-CPU. The term multi-core refers to a single processor that we can divide up into multiple cores. In today’s systems, there are dual-core, quad-core, hexa-core, and even octo-core processors! In these cases SMP architecture applies to each core separately as individual processors. Multi-CPU systems, on the other hand, include more than one physical CPU unit.
CPU Model Optimization
One of the important roles that a hypervisor plays is to control which CPU features will be exposed to the guest cloud server by the host operating system. By default, CloudSigma’s policy is to pass all of the host’s CPU capabilities to the guest OS, as this gives access directly to various CPU instruction sets that can be critical for boosting performance of encryption, media encoding and many other workloads. It is also possible to select KVM64, a popular KVM emulated CPU model, in order to mitigate compatibility issues should they arise.
Optimize your VPS SMP sizing
Some applications benefit from having more CPU threads, others less. You can optimize the SMP sizing to better fit your computing workload requirements. CloudSigma allows you to vary the SMP sizing from 1GHz up to 2.5GHz each. For example, a server sized at 10GHz could consist of four 2.5GHz SMPs or up to 10 which would be 10 of 1GHz each. If your application doesn’t need a fast SMP but more is better, the latter can significantly boost performance. There’s no change in cost based on the SMP number you choose so it’s just a matter of choosing the best fit for your needs. This one setting can have a profound, positive impact on your price/performance if set correctly.
Optimization For NUMA
NUMA stands for non-uniform memory access architecture and it is used to control memory access on a shared bus for SMP architectures with many processors.
When we enable NUMA, the NUMA/CPU topology of the hypervisor is exposed to the virtual machine which enables a performance boost for NUMA aware applications. Since SMP systems share memory, multi-CPU systems can sometimes be starved for memory without NUMA. The real benefit of NUMA occurs when you have SMP architectures with many CPUs competing for memory. Since Cloudsigma’s SMP architecture includes multi-processors, this setting is recommended usually for cloud servers with more than six SMPs specified. For Linux VM/BSD servers, the optimized server settings are “Multi-CPU” by default. As some Linux distributions do not support multiple NUMA nodes on multiple CPU cores. It’s worth turning on NUMA for larger systems and comparing performance.
For Windows systems, you can also enable NUMA for larger server sizes, but SMP settings are multi-core mode instead. These optimized settings enable CloudSigma to maximize thread performance while effectively handling Windows licensing requirements for multi-CPU systems. It’s worth playing with the possibilities for your OS and application needs to see which gives the best performance and stability. There are no cost implications so any performance boost is a free option.
Optimized Hypervisor Settings
Hypervisor settings help to configure the behavior of the interface between the host machine and the guest machines.
When running a Windows virtual machine in a KVM environment, guest clock sync issues are often the source of problems including a degradation in performance. In order to address these issues, CloudSigma exposes the ability to set KVM hypervisor parameters to optimize performance: hv_relaxed, and hv_tsc.
hv_relaxed: This setting relaxes restraints on timers to improve the behavior of Windows VMs.
hv_tsc: This setting enables more precise timers for Windows, which boosts performance for any code with timer specific dependencies.
Note that you should not enable these settings for Linux-based systems.
At CloudSigma we work hard to provide a smooth, zero-to-100 experience for server creation right out-of-the-box. But on the other hand, we know we can gain a lot from tweaking your cloud set-up to your requirements. Optimized server settings are yet another way that CloudSigma helps its customers get up-and-running with a cloud server quickly. Also, it exposes additional options to gain industry-leading price-performance for those that want to dive deeper. Have fun playing with these settings and good luck with your computing!