27af7d6ea5
Avoid hot pages being replaced by others to remarkably decrease cache misses Sample results with the test program which quote from xbzrle.txt ran in vm:(migrate bandwidth:1GE and xbzrle cache size 8MB) the test program: include <stdlib.h> include <stdio.h> int main() { char *buf = (char *) calloc(4096, 4096); while (1) { int i; for (i = 0; i < 4096 * 4; i++) { buf[i * 4096 / 4]++; } printf("."); } } before this patch: virsh qemu-monitor-command test_vm '{"execute": "query-migrate"}' {"return":{"expected-downtime":1020,"xbzrle-cache":{"bytes":1108284, "cache-size":8388608,"cache-miss-rate":0.987013,"pages":18297,"overflow":8, "cache-miss":1228737},"status":"active","setup-time":10,"total-time":52398, "ram":{"total":12466991104,"remaining":1695744,"mbps":935.559472, "transferred":5780760580,"dirty-sync-counter":271,"duplicate":2878530, "dirty-pages-rate":29130,"skipped":0,"normal-bytes":5748592640, "normal":1403465}},"id":"libvirt-706"} 18k pages sent compressed in 52 seconds. cache-miss-rate is 98.7%, totally miss. after optimizing: virsh qemu-monitor-command test_vm '{"execute": "query-migrate"}' {"return":{"expected-downtime":2054,"xbzrle-cache":{"bytes":5066763, "cache-size":8388608,"cache-miss-rate":0.485924,"pages":194823,"overflow":0, "cache-miss":210653},"status":"active","setup-time":11,"total-time":18729, "ram":{"total":12466991104,"remaining":3895296,"mbps":937.663549, "transferred":1615042219,"dirty-sync-counter":98,"duplicate":2869840, "dirty-pages-rate":58781,"skipped":0,"normal-bytes":1588404224, "normal":387794}},"id":"libvirt-266"} 194k pages sent compressed in 18 seconds. The value of cache-miss-rate decrease to 48.59%. Signed-off-by: ChenLiang <chenliang88@huawei.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> |
||
---|---|---|
.. | ||
qmp | ||
specs | ||
aio_notify.promela | ||
atomics.txt | ||
blkdebug.txt | ||
blkverify.txt | ||
bootindex.txt | ||
ccid.txt | ||
ich9-ehci-uhci.cfg | ||
image-fuzzer.txt | ||
libcacard.txt | ||
live-block-ops.txt | ||
memory.txt | ||
migration.txt | ||
multiple-iothreads.txt | ||
multiseat.txt | ||
q35-chipset.cfg | ||
qapi-code-gen.txt | ||
qdev-device-use.txt | ||
qemupciserial.inf | ||
rdma.txt | ||
spice-port-fqdn.txt | ||
tracing.txt | ||
usb2.txt | ||
usb-storage.txt | ||
virtio-balloon-stats.txt | ||
vnc-ledstate-Pseudo-encoding.txt | ||
writing-qmp-commands.txt | ||
xbzrle.txt | ||
xen-save-devices-state.txt |