cloudflare / cloudflare/boringtun

Slow work during testing on VM

Open
#352 18 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
7.2k
Forks
532
PR merge metrics
No merged PRs in 30d

Description

Hi 👋

I wanted to add mDNS support for wireguard and decided to take userspace module for it. But during the test I found the strange thing that the bandwidth dropped a lot and the ping increased in boringtun. This does not happen when switching to kernel or Go implementation (just switch WG_QUICK_USERSPACE_IMPLEMENTATION).

The latest version is used as mentioned in the README. This appeared after some time of testing. In the beginning everything was fine. As you can see the CPU is not busy.

Untitled

```sh
vagrant@wgserver:~$ boringtun-cli -V
boringtun 0.6.0

vagrant@wgserver:~$ rustup -V
rustup 1.26.0 (5af9b9484 2023-04-05)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.70.0 (90c541806 2023-05-31)`

vagrant@wgserver:~$ hostnamectl
Static hostname: wgserver
Pretty hostname: wg_server
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: 794e8af11ca343c3ac86176f4506a03e
Boot ID: 5c51191b3166487ea3d9dad3aa1ec591
Virtualization: oracle
Operating System: Ubuntu 23.04
Kernel: Linux 6.2.0-24-generic
Architecture: x86-64
Hardware Vendor: innotek GmbH
Hardware Model: VirtualBox
Firmware Version: VirtualBox
```

P.S. Maybe I should also mention in the README that `WG_QUICK_USERSPACE_IMPLEMENTATION` parameter doesn't work without fixes because it doesn't go into basic mode inside if

~ Sergei

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the degradation with boringtun-cli 0.6.0 on the reported Ubuntu 23.04 VirtualBox VM, comparing WG_QUICK_USERSPACE_IMPLEMENTATION with the kernel and Go implementations. Check the README and the reported basic-mode behavior of WG_QUICK_USERSPACE_IMPLEMENTATION. Done means the userspace implementation no longer develops the bandwidth and ping regression, and the parameter behavior is accurately documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.