As we virtualise more and more systems in the modern data centre, more constraint gets put on the memory capabilities of the compute layer. Just go look at any of your hypervisor hosts and chances are that you are consuming a lot more memory than CPU. Memory is a critical part of getting the best performance out of any application, and virtualisation just adds more pressure to this. So long as you aren’t running monster VMs, then typically NUMA isn’t a major concern as the systems are distributed enough to balance the load, and modern hypervisors are intelligent enough to allocate CPU cores that are NUMA close to the relevant memory.
Memory management technologies involve one or more of the following: compression, sharing and swapping. Sharing is a common technique, where common memory pages (such as Windows loading the same DLL’s into memory, or Linux loading the same kernel modules) can be shared across virtual machines. Sharing is in effect deduplication for memory and has the one of the lowest overheads, although a lookup table does need to be maintained in order to ensure multiple memory pointers can reference the same memory page. Compression is next on the list, this process simply compresses the memory pages in order to save space, memory pages are much like any data that a compute creates, and generally this compresses very well (with the exception of highly secure systems which have encrypted memory pages). The downside to compression is that every operation (both reads and writes) must go through a compression/decompression mechanism and this can slow down memory access. Finally is memory swapping which generally comes in two flavours. Ballooning is a process where a virtual machine driver gradually inflates and grabs memory from the virtual machine, forcing the operation to start swapping its own applications as intelligently as possible. The second process is the hypervisor simply starts swapping virtual machine memory directly to disk. This process is a lot less friendly to the virtual machines as there is no thought into what pages or applications get swapped.
With the exception of swapping, each of these techniques puts more pressure on the reliability and performance of memory as more active data is referenced in a smaller number of memory pages. This means memory reliability is just as important as cost effective memory. Additionally the best performance from any system is always going to be out of giving unreserved access to as much memory as it needs, so avoiding these memory management techniques altogether is one of a system administrators main goals.
Having enough memory seems an impossible battle to win, it always seems to be the first resource to be exhausted. The big challenge here is that this hasn’t gone unnoticed and branded memory has a significant premium. This is where third party memory can really benefit any organisation. A common myth is that it invalidates vendor support (either from the server vendor or the hypervisor vendor), and this simply isn’t true.
Our specialist technicians who have over 9 years’ experience of working with server ram can help you determine the best possible options for your server upgrade. With “A grade” memory modules, a lifetime warranty and a dedicated support team you can trust Offtek to ensure your servers are always running at 100%.