-
Notifications
You must be signed in to change notification settings - Fork 5.1k
krunkit: Disable offloading for faster networking #21341
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Skipping CI for Draft Pull Request. |
dfb2dfd to
390e6a1
Compare
089b576 to
301051f
Compare
krunkit-1.0.0[1] allows disabling offloading for faster networking. Keep
the Offloading option in case offloading is improved in future versions
or we want to add a flag to use int for specific workload.
Testing shows 6.7 times faster network performance, and 9p mount
is 3 times faster.
Starting cluster:
% minikube start --driver krunkit --container-runtime containerd
😄 minikube v1.36.0 on Darwin 15.6 (arm64)
✨ Using the krunkit (experimental) driver based on user configuration
👍 Starting "minikube" primary control-plane node in "minikube" cluster
🔥 Creating krunkit VM (CPUs=2, Memory=6144MB, Disk=20000MB) ...
📦 Preparing Kubernetes v1.33.2 on containerd 1.7.23 ...
🔗 Configuring bridge CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: default-storageclass, storage-provisioner
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Testing iperf3:
% kubectl apply -f iper3-server.yaml
deployment.apps/iperf3 created
service/iperf3 created
% kubectl get deploy iperf3
NAME READY UP-TO-DATE AVAILABLE AGE
iperf3 1/1 1 1 9s
% kubectl get service iperf3
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
iperf3 NodePort 10.105.127.180 <none> 5201:30201/TCP 17s
% iperf3 -c $(minikube ip) -p 30201
Connecting to host 192.168.105.10, port 30201
[ 5] local 192.168.105.1 port 50630 connected to 192.168.105.10 port 30201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.05 GBytes 9.03 Gbits/sec
[ 5] 1.00-2.01 sec 1.09 GBytes 9.29 Gbits/sec
[ 5] 2.01-3.01 sec 1.06 GBytes 9.09 Gbits/sec
[ 5] 3.01-4.00 sec 1.08 GBytes 9.33 Gbits/sec
[ 5] 4.00-5.00 sec 1.08 GBytes 9.31 Gbits/sec
[ 5] 5.00-6.00 sec 1.07 GBytes 9.23 Gbits/sec
[ 5] 6.00-7.00 sec 1.09 GBytes 9.35 Gbits/sec
[ 5] 7.00-8.01 sec 1.08 GBytes 9.20 Gbits/sec
[ 5] 8.01-9.00 sec 1.07 GBytes 9.18 Gbits/sec
[ 5] 9.00-10.01 sec 1.08 GBytes 9.28 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 10.7 GBytes 9.23 Gbits/sec sender
[ 5] 0.00-10.01 sec 10.7 GBytes 9.23 Gbits/sec receiver
Testing 9p mount:
% minikube mount ~/models:/mnt/models
📁 Mounting host path /Users/nir/models into VM as /mnt/models ...
▪ Mount type: 9p
▪ User ID: docker
▪ Group ID: docker
▪ Version: 9p2000.L
▪ Message Size: 262144
▪ Options: map[]
▪ Bind Address: 192.168.105.1:50614
🚀 Userspace file server:
ufs starting
✅ Successfully mounted /Users/nir/models to /mnt/models
📌 NOTE: This process must stay alive for the mount to be accessible ...
$ time cat /mnt/models/DeepSeek-R1-0528-Qwen3-8B-Q4_K_M.gguf >/dev/null
real 0m10.219s
user 0m0.007s
sys 0m0.263s
[1] https://github.com/containers/krunkit/releases/tag/v1.0.0
301051f to
890003c
Compare
|
@medyagh this is ready for merge |
|
/ok-to-test |
medyagh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can merge after full tests are back :)
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: medyagh, nirs The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
kvm2 driver with docker runtime Times for minikube start: 51.2s 46.7s 47.5s 48.5s 51.5s Times for minikube ingress: 14.8s 15.8s 15.8s 15.8s 14.8s docker driver with docker runtime Times for minikube ingress: 13.6s 12.7s 13.6s 18.6s 13.6s Times for minikube start: 22.1s 22.8s 27.3s 22.9s 26.2s docker driver with containerd runtime Times for minikube start: 21.9s 23.1s 22.2s 22.6s 20.8s Times for minikube ingress: 24.2s 40.1s 40.1s 24.1s 24.1s |
|
Here are the number of top 10 failed tests in each environments with lowest flake rate.
Besides the following environments also have failed tests:
To see the flake rates of all tests by environment, click here. |
|
@medyagh tests finished, we have the regular failures in cri-o, windows, and functional tests on the overloaded macos-13 machines. None are related to krunkit since don't have any automated tests for krunkit and the change is only in the krunkit driver. |
krunkit-1.0.0[1] allows disabling offloading for faster networking. Keep the Offloading option in case offloading is improved in future versions or we want to add a flag to use int for specific workload.
Testing shows 6.7 times faster network performance, and 9p mount is 3 times faster.
Starting cluster:
Testing iperf3:
Testing 9p mount:
[1] https://github.com/containers/krunkit/releases/tag/v1.0.0