Rootless network performance (pasta vs slirp4netns) #22559
Replies: 1 comment
-
Not really options, at the moment. We check latency using neper in the upstream CI ( There are plans to introduce multithreading, eventually, and much more concrete work in progress to support vhost-user for virtual machines (passt(1)), first. Once vhost-user support is merged, we can start playing with multithreading for virtual machines (vhost-user supports multiple queues). That would be kind of symmetric with VDUSE for containers (see "VDUSE support for containers" in this article): for pasta, it could look like this. I'm not excluding you could get much better results by tweaking some |
Beta Was this translation helpful? Give feedback.
-
I did some network performance tests to see how good pasta is compared to slirp4netns. I start on one physical machine nginx (as podman container), and send requests from other phyiscal mashine with "Apache HTTP server benchmarking tool" (ab). Here the results:
Default rootless network (pasta)
ab -c 1 -n 10000
ab -c 4 -n 40000
ab -c 8 -n 80000
ab -c 16 -n 160000
ab -c 32 -n 320000
Rootless network with slirp4netns
ab -c 1 -n 10000
ab -c 4 -n 40000
ab -c 8 -n 80000
ab -c 16 -n 160000
ab -c 32 -n 320000
Default rootfull network
ab -c 1 -n 10000
ab -c 4 -n 40000
ab -c 8 -n 80000
ab -c 16 -n 160000
ab -c 32 -n 320000
Conclusion
As you can see, pasta performs better than slirp4netns only up to a certain parallelism (specifically up to 8). Then slirp4netns starts to perform significantly better. Rootfull network scales best, which is to be expected.
Question
Are there any options to improve pasta's scalability?
Beta Was this translation helpful? Give feedback.
All reactions