From ae83243daec5412a5eb5351492f6bf70f74f8fd1 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Fri, 27 Jun 2025 17:37:03 +0800 Subject: [PATCH] add iperf readme --- Others/iperf/README.md | 50 ++++++++++++++++++++++++++++++ Others/iperf/doc/image-info.yml | 43 +++++++++++++++++++++++++ Others/iperf/doc/picture/logo.png | Bin 0 -> 33802 bytes 3 files changed, 93 insertions(+) create mode 100644 Others/iperf/README.md create mode 100644 Others/iperf/doc/image-info.yml create mode 100644 Others/iperf/doc/picture/logo.png diff --git a/Others/iperf/README.md b/Others/iperf/README.md new file mode 100644 index 00000000..f165165f --- /dev/null +++ b/Others/iperf/README.md @@ -0,0 +1,50 @@ +# Quick reference + +- The official iperf docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# iperf | openEuler +Current iperf docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +iperf is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the measured throughput / bitrate, loss, and other parameters. + +Learn more about iperf on [iperf Website](https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/)⁠. + +# Supported tags and respective Dockerfile links +The tag of each `iperf` docker image is consist of the version of `iperf` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|----------|-------------------------------------------|------------------| +|[3.19-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/iperf/3.19/24.03-lts-sp1/Dockerfile)| iperf 3.19 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` based on their requirements. + +- Pull the `openeuler/iperf` image from docker + + ```bash + docker pull openeuler/iperf:{Tag} + ``` + +- Basic Usage + + Start the server (default port: 5201) + ``` + iperf3 -s + ``` + + Output Example: + ``` + Server is listening on 5201 + ``` + + Run on custom port + ``` + iperf3 -s -p 9000 + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/Others/iperf/doc/image-info.yml b/Others/iperf/doc/image-info.yml new file mode 100644 index 00000000..bb1a4022 --- /dev/null +++ b/Others/iperf/doc/image-info.yml @@ -0,0 +1,43 @@ +name: iperf +category: others +description: iperf 是一款网络性能测试工具,用于测量 带宽(Throughput) 和 延迟(Latency)。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + iperf镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[3.19-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/iperf/3.19/24.03-lts-sp1/Dockerfile)| iperf 3.19 on openEuler 24.03-LTS-SP1 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/iperf:{Tag} + ``` + +usage: | + 启动iperf3 (默认端口: 5201) + ``` + iperf3 -s + ``` + + 输出示例: + ``` + Server is listening on 5201 + ``` + + 自定义端口运行 + ``` + iperf3 -s -p 9000 + ``` + +license: BSD 3-Clause License +similar_packages: + - netperf: Netperf 是一款经典的 网络性能基准测试工具,由 Hewlett-Packard (HP) 开发,用于精确测量 TCP/UDP 的吞吐量、延迟和请求/响应性能。 +dependency: + - OpenSSL + - libc \ No newline at end of file diff --git a/Others/iperf/doc/picture/logo.png b/Others/iperf/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..585b2a136c34f9359bac1794797d0e9e90a83744 GIT binary patch literal 33802 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 literal 0 HcmV?d00001 -- Gitee