LinuxContainer: Give a bit of overhead memory (#472)

The guest agent isn't free, and today we were sizing the VMs memory
allotment and the containers cgroup to the same value. This change gives
some overhead memory to the VM (50MB for now) for the guest agent.
This commit is contained in:
Danny Canter
2026-01-14 13:31:34 -08:00
committed by GitHub
parent 8446f895ee
commit bbe4159649
+14 -1
View File
@@ -404,9 +404,22 @@ extension LinuxContainer {
var modifiedRootfs = self.rootfs
modifiedRootfs.options.removeAll(where: { $0 == "ro" })
// Calculate VM memory with overhead for the guest agent.
// The container cgroup limit stays at the requested memory, but the VM
// gets an additional 50MB for the guest agent (could be higher, could be lower
// but this is a decent baseline for now).
//
// Clamp to system RAM if the total would exceed it as Virtualization.framework
// bounds us to this.
let guestAgentOverhead: UInt64 = 50.mib()
let vmMemory = min(
self.memoryInBytes + guestAgentOverhead,
ProcessInfo.processInfo.physicalMemory
)
let vmConfig = VMConfiguration(
cpus: self.cpus,
memoryInBytes: self.memoryInBytes,
memoryInBytes: vmMemory,
interfaces: self.interfaces,
mountsByID: [self.id: [modifiedRootfs] + self.config.mounts],
bootLog: self.config.bootLog,