【浪潮信息KeyarchOS (KOS)】手把手用Sockperf:多维度评估网络吞吐量和延迟的神器

浪潮信息KeyarchOS的飞跃之路 KOS也就是KeyarchOS,由浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。了解了KOS之后,对于我们开始谈到的一些问题,我们看看KOS都进行了哪些改进。 阅读详情

目录

1 概述

2 安装准备

2.1 操作系统环境

2.2 软件版本

3 编译安装

4 执行测试

4.1 简单使用

4.2 进阶使用

5 注意事项

6 常见问题

7 参数建议与结果分析


1 概述

浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。详细介绍见官网链接https://www.ieisystem.com/kos/product-kos-xq.thtml?id=12126

Sockperf是一个网络性能测试工具,用于测量和评估TCP/IP网络的吞吐量和延迟。它是由软件开发者们使用C ++编写的,可以在Linux系统上运行。Sockperf通过创建大量的TCP连接,并在这些连接上执行请求-响应测试来测试网络性能。测试结果包括吞吐量、延迟、丢包率等指标,可以帮助开发人员和网络管理员评估网络的性能和稳定性,从而优化网络配置和调整。

Sockperf支持多种测试模式和选项,可以根据需求进行灵活配置。它可以用作网络应用程序开发、网络设备性能测试和网络性能调优的工具。不过需要注意的是,使用Sockperf进行测试时,需要确保测试环境和网络连接的稳定性,以获得准确的性能结果。

2 安装准备

2.1 操作系统环境

操作系统版本:KOS 5.8 sp2u1(5.10.134-17.2.2.kos5.x86_64)

测试架构:x86_64,8核4G虚拟机

2.2 软件版本

Sockperf 3.8

3 编译安装

要安装Sockperf,你可以按照以下步骤进行操作:

首先,确保你的系统是基于Linux的系统,比如Ubuntu、CentOS等。

打开终端,并使用以下命令安装必要的依赖项:

sudo yum install -y autoconf automake libtool gcc-c++

接下来,下载Sockperf的部署包。使用以下命令将部署包下载到本地:

cd /opt

wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz

如果出现以下报错:

在/etc/hosts中添加hosts:20.205.243.166 http://github.com

解压tar包:

tar -zxf 3.8.tar.gz

进入sockperf-3.8目录,执行autogen.sh脚本生成configure文件,并执行configure:

cd sockperf-3.8/

./autogen.sh

./configure

编译安装:

make -j `cat /proc/cpuinfo| grep process | wc -l`

make install

执行过程中没有报错即可,下面在测试机上启动服务,执行以下命令:

sockperf sr --tcp --daemonize

执行结果如下:

至此,安装过程完成。现在你可以在终端中运行sockperf命令来使用Sockperf进行网络性能测试了。使用sockperf --help命令可以查看Sockperf的命令行选项和使用方法。记得根据你的需求进行适当的配置和参数设置。

4 执行测试

4.1 简单使用

使用Sockperf进行网络性能测试时,你可以根据具体需求设置一些参数和选项。下面是一些常用的Sockperf使用说明:

服务器端设置:

启动Sockperf服务器端:`sockperf server`

可以使用`--port`参数指定服务器端口,默认为12321

客户端设置:

连接到Sockperf服务器端:`sockperf ping-pong --ip <服务器IP地址>`

使用`--ip`参数指定服务器的IP地址

使用`--port`参数指定服务器端口,默认为12321

可以使用`--events`参数指定要执行的测试次数,默认为1000次

可以使用`--msg-size`参数指定消息的大小,默认为64字节

可以使用`--throughput`参数指定带宽的大小,默认为0,表示不限制带宽

可以使用`--concurrency`参数指定并发连接数,默认为1

测试模式:

ping-pong模式(默认模式):使用`ping-pong`子命令进行测试,客户端和服务器端交替发送和接收消息。

rr(Request-Response)模式:使用`rr`子命令进行测试,客户端发送请求消息,服务器端接收并发送响应消息。

4.2 进阶使用

测试模式:

并发模式:使用`--parallel`参数指定并发连接数,默认为1。增加并发连接数可以模拟更高的负载情况。

多线程模式:使用`--threads`参数指定使用的线程数,默认为1。增加线程数可以加快测试速度。

带宽和速率控制:

通过`--throughput`参数设置带宽限制,例如`--throughput 1Gbps`可以限制带宽为1 Gbps。

通过`--rate`参数设置每秒发送的消息数限制,例如`--rate 10000`可以限制每秒发送10000条消息。

数据报大小:

通过`--msg-size`参数设置消息的大小,例如`--msg-size 256`表示将消息大小设置为256字节。

测试时间:

通过`--time`参数设置测试时间长度,例如`--time 10`表示测试将运行10秒钟。

指定日志文件:

通过`--log`参数可以指定保存测试结果的日志文件,例如`--log /path/to/logfile`。

高级选项:

通过使用`--tcp-info`参数可以获取关于TCP连接的更多详细信息。

通过`--histogram`参数可以输出延迟的分布直方图。

下面来演示一个简单的测试实例,使用pp模式测试测试机的网络时延:

在测试机上执行以下命令,查询测试机的私网IP地址。

ifconfig || ip addr

地址为图中红框标记的ip:

下面我们使用sockperf在辅助测试机上执行以下命令,向测试机输入流量:

sockperf pp -i <测试机私网IP地址> --tcp -t 30 -m 14 --full-log=result.json

<测试机私网IP地址>需替换为上一步查询的实际测试机的私网IP地址,--tcp表示使用tcp协议,-m表示消息大小,默认为14,-t表示运行时间,--full-log表示以CSV格式转储所有消息发送/接收时间的完整日志到result.json文件

此处实例为sockperf pp -i 192.168.217.132 --tcp -t 30 -m 14 --full-log=result.json,执行结果如下:

结果分析:

以avg-latency开头的结果数据表示平均时延,单位为us。

以percentile 开头的结果数据表示不同分位时延,单位为us,比如以percentile 99.000开头的结果数据表示99分位时延。

可以使用sockperf <模式> --help命令来查看对应模式的各种参数来个性化我们的测试,有关参数的翻译可以查看该文档https://ipcmen.com/sockperf。

5 注意事项

测试网络稳定性:在进行性能测试之前,请确保你的网络连接是稳定的,并且没有其他网络活动或流量干扰。这可以确保你获得准确的测试结果。

跨网络测试:如果你要在不同的网络之间进行测试,请确保网络之间的连接是可靠和高速的。网络延迟和带宽限制可能会影响测试结果,并不一定代表真实的网络性能。

防火墙和端口配置:如果你在进行Sockperf测试时遇到连接问题,请确保服务器和客户端的防火墙设置允许通过测试所需的端口进行通信。默认情况下,Sockperf使用端口12321进行通信。

多次运行测试:为了确保测试的可靠性和一致性,建议多次运行测试,并计算平均值和标准差来获取更准确的性能结果。

6 常见问题

连接问题:

确保服务器和客户端之间的网络连通性,并检查防火墙设置,确保允许Sockperf使用的端口进行通信。

尝试使用不同的IP地址或域名进行连接,确保连接信息正确无误。

传输协议问题:

如果你选择使用UDP进行测试,请确保目标服务器和客户端都正确设置了UDP传输协议,以及相应的端口转发和设置。

带宽限制问题:

如果你设置了带宽限制,确保限制的值符合实际情况,并检查网络设备和连接以确保它们支持所需的带宽。

检查网络设备和路由器设置,确保没有其他因素对网络带宽进行限制,如限速、QoS等。

系统配置和资源问题:

检查服务器和客户端的系统配置,确保系统配置足够满足Sockperf的要求。包括网络适配器、内存、处理器等。

确保系统的负载较低,避免其他任务或进程对测试产生干扰。

客户端和服务器端版本不匹配:

确保服务器端和客户端使用的Sockperf版本是相同的,并且它们兼容。如果版本不匹配,可能会导致连接问题或测试结果受影响。

日志和错误信息:

检查Sockperf的日志输出和错误信息,这可能会给出有关连接问题或其他错误的提示。

如果使用`--log`参数指定了日志文件,请确保查看日志文件以获取更详细的信息。

7 参数建议与结果分析

要获得最佳的测试结果,需要根据你的具体需求和测试环境进行配置。例如,在评估系统的最大吞吐量时,你可以增加并发连接的数量;在测试实时性时,可以配置较低的延迟和禁用Nagle算法。还可以根据所使用的协议(TCP或UDP)以及网络条件进行合理的调整。

此外,了解你所测试的应用程序的特点、网络拓扑以及硬件配置等也是配置Socketperf参数的关键。根据具体情况进行试验和优化,通过多次测试和结果分析来选择最佳的参数配置。

下面为经过大量测试数据得出的参数分析:

Ping-Pong(pp模式)(测试点对点的延迟性能):

-t参数:运行时长,单位为秒,对结果几乎没有影响,差距在0.x us,运行时长越短结果越好,我们默认配置为30

-m参数:消息大小,默认为14,最小也是14,配置的越小结果越好,所以我们这里直接用最小的14

--tcp参数:该参数是指定使用tcp协议进行测试,优点是稳定,但测试结果延迟会大一些,所以我们去掉这个参数直接用默认的udp

-b参数:用于指定发送和接收的数据大小。这是可选参数,默认为 1 字节,配置越小结果越好,所以我们这里用默认的1,有测试需求的话可以根据需求自定义发送和接收的数据大小

--tcp-avoid-nodelay参数:停止/立即开始传送TCP消息(启用/禁用Nagel),默认为禁用,该参数对结果没有影响,默认禁用即可

--tcp-skip-blocking-send参数:启用非阻塞发送操作(默认为OFF),该参数对结果没有影响,默认禁用即可。

--mc-loopback-enable参数:启用mc环回(默认禁用),该参数对结果没有影响,默认禁用即可

--mc-ttl参数:限制消息的生存期(默认为2),该参数对结果没影响,默认即可。

--nonblocked参数:打开非阻塞套接字,使用该参数会使结果慢一些,默认不加。

--dontwarmup参数:启动时不发送热身消息,该参数对结果影响微乎其微,可以默认不加。

所以我们在使用pp模式时可以参照以下步骤:

我们启动时使用默认udp协议启动:

sockperf sr --daemonize

关闭服务器防火墙:

systemctl stop firewalld

测试时使用下面的参数及参数值进行测试:

sockperf pp -i 127.0.0.1 -t 30 -m 14 --full-log=result.json

Under-load(ul模式)(进行负载测试下的延迟测试):

参数建议与pp模式基本一致,参照pp模式的参数建议即可,该模式的结果不如pp模式好

命令建议如下:

sockperf ul -i 127.0.0.1 -t 30 -m 14 --full-log=result.json

Throughput(tp模式)(用于评估网络传输的数据吞吐量性能,通过发送大量的数据来测试网络的传输速度):

-t参数:运行时长,单位为秒,运行时间与测出的吞吐量并无影响,时间长短测出的结果基本差不多,所以我们默认配置为30。

-m参数:消息大小,默认为14,最小也是14,这里配置的越大,结果越大,根据测试指标配置对应的值即可。

--mps参数:指定每秒发送的数据包数。可以通过增加或减少此值来调整发送速率,默认为10000,我们这里指定--mps=max调到最大即可。

即使用tp模式时使用以下命令:

sockperf tp -i 127.0.0.1 -t 30 -m 根据测试指标配置 --mps=max

总结如下:

使用sockperf时可根据你关注的性能指标与测试要求,测试网络的延迟性能就使用sockperf的pp模式,测试网络的数据吞吐量就使用sockperf的tp模式,参数参照上面的参数建议即可。

iperf、netperf:例子;pktgen; sockperf Server端,没有-u参数,当有client用udp连的时候,才会建立udp;Server端,没有-u参数,当有client用udp连的时候,才会建立udp;iperf3 -c 169.254.32.5 -t 60 -u 是UDP。iperf3 -s -A 0 & 如果不加 port,默认是5201。client 端可以设置udp;-b 速率 256M每秒。 阅读详情

相关推荐

sockperf网络测试工具,及使用方法

sockperf 用于linux 和windows服务器之间的网络测试,内附使用方法

sockperf 网络测试工具使用

sockperf是基于套接字API的网络基准测试实用程序,旨在测试高性能系统的性能(延迟和吞吐量)(它也适用于测试常规网络系统的性能)。它涵盖了大多数套接字API调用和选项。 具体来说,除了标准的吞吐量测试之外,sockperf还执行以下操作: 1、以亚纳秒分辨率测量每个离散数据包的延迟(使用TSC寄存器以非常低的开销对CPU滴答进行计数)。 2、对ping-pong 模式和负载模式下的延迟都执行...

俺的博客 1万+

如何在iPhone上本地运行SmolVLM?5亿参数模型实战指南(附Swift代码)

本文详细介绍了如何在iPhone上本地部署和运行轻量高效的SmolVLM多模态模型。通过实战指南,分享了使用Swift和MLX框架进行环境配置、模型加载、内存优化以及实现实时图像分析与文本生成的完整流程,帮助开发者在移动端高效运行AI视觉语言模型。

echo99的专栏 654

探秘高性能网络基准测试工具:sockperf

探秘高性能网络基准测试工具:sockperf 项目介绍 在追求极致性能的今天,我们常常需要对系统和网络进行深度测试以确保其效率。sockperf 正是这样一个专为高吞吐量、低延迟系统设计的网络基准测试工具。它基于socket API,能够精确测量系统的延迟和带宽,无论是针对超高速网络环境还是普通网络,都能提供详尽的数据分析。 项目技术分析 sockperf 的技术亮点在于: 亚纳秒级延迟测量:...

gitblog_00048的博客 1034

基于机器学习和辐射传输的地表温度模拟方法对比

对于不同的地表类型和不同的年份,经验方法是实用的,虽然整体精度不如物理方法,但具有计算速度快、对模型内部结构考虑较少等优点。尽管深度学习等回归的经验方法不需要考虑辐射传输和能量平衡的具体过程, 但在其输入参数的选择上也不能是无序和随机的,而是应选择有关相应物理过程的参数。经验方法在处理不同年份相同地表类型或表现相对较好, RMSE 约为 1.50K,但在不同地表类型且不同年份模拟结果较差, RMSE 约为 3.0K, 虽然精度不如物理方法,但它具有计算速度快,不需过多考虑模型内部结构的优点。

2301_77907355的博客 1021

Latex | IEEE双栏排版中长公式的排版

IEEE双栏排版中,有时候公式过于长了,过宽,导致单栏排版不下。

qq_43466146的博客 1万+

高性能网络性能测试工具:sockperf

高性能网络性能测试工具:sockperf 项目介绍 sockperf 是一款基于套接字API的网络性能测试工具,专为测试高性能系统(也适用于常规网络系统)的性能(延迟和吞吐量)而设计。它涵盖了大部分套接字API调用和选项,能够精确测量每个数据包的延迟,并提供详细的延迟分布分析。 项目技术分析 核心功能 高精度延迟测量:sockperf 使用 TSC 寄存器(Time Stamp Counter)...

gitblog_00116的博客 842

Simplicity Studio V5与EFR32BG22蓝牙开发环境实战指南

本文详细介绍了Simplicity Studio V5集成开发环境与EFR32BG22蓝牙芯片的开发实战指南。内容涵盖开发环境安装、SDK配置、项目创建、调试烧录、外设驱动集成及常见问题解决方案,帮助开发者快速上手物联网蓝牙应用开发,并充分利用EFR32BG22的低功耗与高集成度特性。

v5w6x的博客 320

Sockperf-网络栈和数据路径测试工具(延迟和吞吐量)

Sockperf 是一个强大而灵活的网络性能剖析工具。通过组合其不同的测试模式(Ping-Pong, Throughput, Under-Load)和各种高级参数,你可以全面评估你的网络栈在不同应用场景(如低延迟交易、大数据传输、高并发服务)下的性能表现。始终记住,一个完整的性能评估应该包括不同消息大小和不同负载水平下的测试。以下是sockperfiperf和qperf这三个常用网络性能测试工具的详细对比分析。这三个工具虽然都用于网络性能测试,但它们的设计初衷、侧重点和适用场景有显著不同。

captain 1642

Python爬虫教程:如何爬取多平台电商商品信息(价格、评价、库存)

本文介绍了如何编写一个跨平台电商商品爬虫,爬取多个平台的商品信息,包括商品名称、价格、评价等数据。通过Python的爬虫库(如requestsSelenium)和数据处理库(如pandasmatplotlib)的结合,我们可以高效地获取和分析电商平台上的商品信息。

2201_76125261的博客 917

基于YOLOv10的建筑图纸物体检测系统:从数据集构建到UI界面实现

高度结构化的图形元素标准化的符号和标注系统多层次的细节表达精确的尺寸和位置关系。

YOLO 390

**sockperf网络基准测试工具使用指南**

sockperf网络基准测试工具使用指南 项目介绍 sockperf 是一款基于套接字API设计的网络性能基准测试工具,专为测试高性能系统的延迟和吞吐量而生(当然,它也非常适用于常规网络系统的性能测试)。该工具覆盖了大多数套接字API调用和选项。其特色不仅包括在亚纳秒级别测量每个独立数据包的延时(利用TSC寄存器实现),而且还支持在高负载下(百万级PPS,即每秒数据包数)对单包延时的测量。此外,...

gitblog_00166的博客 794

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;

blues_C的博客 2921

浪潮信息KOS服务器操作系统:经过周密考虑后的智慧之选

KOS已在政务、金融、通信、能源、交通、医疗等众多行业中广泛应用,累计装机量超过20万台,并提供长达10年的维护支持。 为了满足CentOS迁移替代的需求,浪潮信息信息已基于KOS,推出可视化迁移方案C2K。

感谢关注-最近在编写开源的自动化测试框架还没整理完 3631

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

如何用sockpef测试实例之间的网络时延

网络时延:指数据(报文/分组、比特流)从网络的一端发送到另一端所需的时间。本文分享自天翼云开发者社区《

天翼云开发者社区 198

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Sidekiq页脚信息完全指南:版本显示与版权声明的终极解析

**Sidekiq**作为Ruby生态中最流行的后台任务处理框架,其Web管理界面提供了丰富的监控信息。在Sidekiq Web UI的底部,你会发现一个包含关键信息的页脚区域。这个页脚不仅显示了Sidekiq的版本信息,还包含了Redis连接状态、服务器时间等重要数据。本文将为你全面解析Sidekiq页脚信息的各个组成部分,帮助你更好地理解和使用这个强大的监控工具。 ## 📊 Sidekiq

gitblog_00443的博客 508

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

从安装到压测:sockperf完整使用手册——包含10个实用命令示例

sockperf是一款功能强大的网络性能测试工具,主要用于测量网络延迟和吞吐量。本文将为新手和普通用户提供一份从安装到压测的完整使用指南,帮助你轻松上手这款实用的网络基准测试工具。 ## 一、sockperf简介 sockperf作为一款专业的网络基准测试工具,支持多种测试模式,包括延迟测试、吞吐量测试、回放测试等。它可以帮助用户评估网络性能,定位网络问题,是网络调试和优化的得力助手。 ##

gitblog_00637的博客 829

浪潮信息 KeyarchOS 安全可信攻防体验

EDR作为KeyarchOS的安全工具,通过安装在KeyarchOS主机上的本地客户端(Agent)与管理中心联动,提供病毒木马、勒索软件、暴力破解等攻击的查杀防护功能,防御未知程序运行和关键业务文件篡改。为主机提供安全稳定的运行环境,为业务的开展保驾护航。

Imagine Miracle的博客 1514
上一篇: 【浪潮信息KeyarchOS (KOS)】手把手教你用Openssl:从加密算法加密解密测试到证书生成测试实战
下一篇: 【KeyarchOS:KOS操作系统】一文搞定 Ktransformers-AMX 大模型部署:核心步骤 + 常见问题解决
KeyarchOS
博客等级 码龄3年 1312粉丝 339原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值