length = uleb128 encoded integer
On the sender side XBZRLE is used as a compact delta encoding of page updates,
-retrieving the old page content from the cache (default size of 512 MB). The
+retrieving the old page content from the cache (default size of 64MB). The
receiving side uses the existing page's content and XBZRLE to decode the new
page's content.
encoded length 24
e9 07 0f 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 03 01 67 01 01 69
+Cache update strategy
+=====================
+Keeping the hot pages in the cache is effective for decreasing cache
+misses. XBZRLE uses a counter as the age of each page. The counter will
+increase after each ram dirty bitmap sync. When a cache conflict is
+detected, XBZRLE will only evict pages in the cache that are older than
+a threshold.
+
Usage
======================
1. Verify the destination QEMU version is able to decode the new format.
3. Set the XBZRLE cache size - the cache size is in MBytes and should be a
power of 2. The cache default value is 64MBytes. (on source only)
- {qemu} migrate_set_cache_size 256m
+ {qemu} migrate_set_parameter xbzrle-cache-size 256m
4. Start outgoing migration
{qemu} migrate -d tcp:destination.host:4444
cache size: H bytes
xbzrle transferred: I kbytes
xbzrle pages: J pages
- xbzrle cache miss: K
- xbzrle overflow : L
+ xbzrle cache miss: K pages
+ xbzrle cache miss rate: L
+ xbzrle encoding rate: M
+ xbzrle overflow: N
-xbzrle cache-miss: the number of cache misses to date - high cache-miss rate
+xbzrle cache miss: the number of cache misses to date - high cache-miss rate
indicates that the cache size is set too low.
xbzrle overflow: the number of overflows in the decoding which where the delta
could not be compressed. This can happen if the changes in the pages are too