feat: add network performance benchmark - #4
Open
jim-junior wants to merge 3 commits into
Open
Conversation
Signed-off-by: jim-junior <jimjunior854@gmail.com>
… adapter Signed-off-by: jim-junior <jimjunior854@gmail.com>
Signed-off-by: jim-junior <jimjunior854@gmail.com>
jim-junior
force-pushed
the
ft-add-netwrok-benckmark
branch
from
August 3, 2026 11:39
d2bb2dc to
5373cf9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a network performance benchmark adapter using
iperf3.The adapter measures network throughput between two containers running under the same configured runtime. It starts an
iperf3server container and runs aniperf3client container against it, then collects the client result as structured JSON.The adapter uses the
nerdctlCLI and does not depend on the Go containerd client API.How It Works
For each benchmark trial, the adapter:
iperf3image.iperf3server container on that network.iperf3client container using the same runtime and network.iperf3 --json.iperf3result in the benchmark output.The server runs with:
The client runs with:
The
--one-offoption causes the server to exit after handling one client connection.A separate network is created for every trial to isolate benchmark traffic. The complete native iperf3 JSON result is retained for later analysis. The adapter also supports noisy runtime output by extracting the valid JSON object from surrounding logs, This is added mainly because for the custom image that
uruncis using, the output involves non-json or iperf3 related output likeContainer Images
networkstatic/iperf3:latestnetworkstatic/iperf3:latestnetworkstatic/iperf3:latestdocker.io/jimjuniorb/iperf3-urunc:0.2