Whenever I talk about multi-threaded enterprise application performance in virtual machines, I tend to rail at length about hardware-assisted memory virtualization. Without hardware-assisted memory virtualization, VM memory access is virtualized using shadow page tables (SPTs). If you want to see the performance impact of SPTs, take a look at the number of page faults that are generated in a VM’s guest OS by using a tool like Windows System Monitor. The high page faults are the result of the latency of SPTs. The OS does a good enough job of memory management that it can typically mask the page faults. However, if you’re looking at a multi-threaded application under heavy load, you may find that the VM simply cannot keep up the the load, resulting in client-side application timeouts. I’ve seen this plenty of times when virtualizing Citrix Presentation Server (or XenApp…). Virtualization success has been both application and load dependent. In some cases, I’ve seen that Citrix servers with less than 50 concurrent connections have often faired well, but once you get beyond that memory latency problems can often be visible to end users and applications. Of course, the max number of concurrent connections will vary depending on the applications being presented by the virtualized Citrix servers. Bottom line – hardware-assisted memory virtualization can make these problems go away. Of course, to do it you’ll need server hardware and a hypervisor (e.g. ESX 3.5, XenServer 4.2) that supports the feature. AMD is first out of the gate with hardware-assisted memory virtualization support. Intel is expected to release its version of hardware-assisted memory virtualization, known as extended page tables, in 2009. You can read more about AMD’s hardware-assisted memory virtualization, known as nested paging, in this white paper.
Great White Paper on AMD Nested Paging
- No comments yet.







Recent Comments