Traditional hypervisors scan all guest memory and compute checksums (hashes) for every single memory page. Then, they look for pages with identical hashes and compare the entire content of those pages; if two pages produce the same hash, it is very likely that the pages are identical in content. This, of course,
can take rather long, especially if the system is not idling. As a result, the additional memory only becomes available after a significant amount of time (
this can be hours or even days!). Even worse, this kind of page sharing algorithm generally consumes significant CPU resources and
increases the virtualization overhead by 10-20%.
Partager