Skip to content

Latest commit

 

History

History
68 lines (47 loc) · 2.79 KB

performance.md

File metadata and controls

68 lines (47 loc) · 2.79 KB

Performance

We benchmarked vmnet-helper with 3 VM types (vfkit, krunkit, qemu) in all operation modes supported by the vmnet framework (shared, bridged, host), in 3 directions (host to vm, vm to host, vm to vm), on 3 machines (iMac M3, MacBook Pro M2 Max, MacBook Pro M5).

See the performance directory for full test results and the development guide for running your own benchmarks.

Comparing to socket_vmnet

Comparing to socket_vmnet with lima using VZ and qemu vm types, vmnet-helper with vfkit is up to 10 times faster, and vmnet-helper with qemu is up to 3 times faster. See similar tools for a detailed comparison.

vmnet-helper vs socket_vmnet - shared network vmnet-helper vs socket_vmnet - bridged network

Tested on iMac M3 and macOS 15.6.1.

Comparing different VMs

Performance depends on VM type and transfer direction. vfkit performs better in all tests. qemu is up to 5 times slower than vfkit.

vmnet-helper drivers - shared network vmnet-helper drivers - bridged network

Tested on MacBook Pro M5 and macOS 26.5.2.

Offloading

With offloading enabled, krunkit provides close to native performance.

Tested on MacBook Pro M5 and macOS 26.5.2.

vmnet-helper offloading - shared network vmnet-helper offloading - bridged network

Important

For best performance do not mix VMs using offloading and VMs not using offloading on the same bridge. This disables TSO on the bridge, which degrades TX performance to 1.5 Gbits/sec.

Native vmnet via vmnet-broker

On macOS 26 and later, VMs using the Virtualization framework can use vmnet natively via vmnet-broker, without vmnet-helper in the data path. Native vmnet is up to 2 times faster compared to krunkit with offloading, and up to 9 times faster compared to krunkit without offloading. Only shared network is supported in native vmnet mode.

vmnet-helper vs vmnet-broker - shared network

Tested on iMac M3 and macOS 26.3.0.