I'm not an expert for KVM or LXC, but doesn't Linux Containers provide Control Groups (cgroups) to limit resource allocation that can also block I/O operations?
Btw, doesn't KVM and LXC support hardware assisted virtualization? Could that explain why your results are the same or very similar?
- LXC is a much lighter weight implementation than is KVM: no hypervisor, no I/O emulation and such; it runs on the SAME kernel using the SAME block I/O buffers using the SAME device drivers as does the native Linux kernel; KVM has its own.
- There shouldn't be much difference in the LXC vs KVM I/O benchmarks because either one can progbably max out the storage bandwidth. If you can fill up the bandwidth, how much overflow data you have doesn't matter, you are still limited by the storage bandwidth. You've probably got bits lying all over the floor :)