Memory backings in Linux Virtualization

Background

When diving into high-performance virtualization, memory is often an area of focus. In this article, I will attempt to explain simply why memory is a concern, and the various ways that are available to you to fix it. This way, you may pick which solution fits your needs.

Memory management is a key responsibility of your operating system (OS). Your OS takes the memory in your system and divides it up into pages. As programs request memory, your OS assigns pages to said programs.

[Read More]

Libvirt Parameters

When browsing through other peoples’ setups, you’ll find a huge range of flags people set. Here’s a list of what I find important, along with what they do. The table on contents will be organized by levels to represent where each config option should go. Note that there are many more flags to explore, should you be so inclined1.

domain

memory

currentMemory

memoryBacking

hugepages

Specifying huge pages

cputune

os

features

acpi

apic

hyperv

relaxed

vapic

spinlocks

vpindex

runtime

synic

stimer

reset

vendor_id

frequencies

reenlightenment

tlbflush

kvm

hidden

vmport

ipapic

cpu

topology

feature

Libvirt/QEMU reference guide

Background

Over the past few months I’ve gotten into experimenting with PCI Passthrough using Linux virtualization. The basic premise is that, instead of dual-booting Linux with Windows for gaming, we can run Windows in a VM and passthrough necessary hardware (storage, graphics card) to achieve near-native performance.

I’ve learned a lot from this experimentation. There are lots of helpful people in this community, but there are also a lot of differing configurations and no one place to look all of the various settings up. With this in mind, I aim to pool all of the information I’ve learned, to help people with their virtualization journeys.

[Read More]