F5F Stay Refreshed Software Operating Systems Significant difference in results when using runsc (gVisor) versus runc

Significant difference in results when using runsc (gVisor) versus runc

Significant difference in results when using runsc (gVisor) versus runc

T
TeamLynas2013
Member
68
07-27-2023, 06:56 PM
#1
I'm testing gVisor's IO performance with fio and encountered puzzling outcomes. When using native or runc, latency stays around 6000ns, whereas gVisor shows about 100ns on average. Bandwidth also differs: both native and runc handle ~360MiB/s with a block size of 128Kb and depth of 32, while gVisor manages roughly 2500MiB/s. This strongly suggests a caching problem. Fortunately, fio offers an option to skip caching (`--direct=1`), but it doesn't seem to resolve the issue for gVisor either. Some studies report correct bandwidth figures but admit they can't fix latency, and I share that experience too. If you need guidance, let me know what direction to explore further. Steps to reproduce: launch a pod in a Kubernetes cluster using runsc with fio benchmarking enabled, specifying the exact version details provided.
T
TeamLynas2013
07-27-2023, 06:56 PM #1

I'm testing gVisor's IO performance with fio and encountered puzzling outcomes. When using native or runc, latency stays around 6000ns, whereas gVisor shows about 100ns on average. Bandwidth also differs: both native and runc handle ~360MiB/s with a block size of 128Kb and depth of 32, while gVisor manages roughly 2500MiB/s. This strongly suggests a caching problem. Fortunately, fio offers an option to skip caching (`--direct=1`), but it doesn't seem to resolve the issue for gVisor either. Some studies report correct bandwidth figures but admit they can't fix latency, and I share that experience too. If you need guidance, let me know what direction to explore further. Steps to reproduce: launch a pod in a Kubernetes cluster using runsc with fio benchmarking enabled, specifying the exact version details provided.