RDMA性能测试工具集preftest_README

这篇具有很好参考价值的文章主要介绍了RDMA性能测试工具集preftest_README。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


测试工具: https://github.com/linux-rdma/perftest

1 概述

preftest(Performance Test)是一组基于uverbs编写的测试工具集,旨在用作性能微基准。这些测试可以用作硬件或软件调优以及功能测试。

uverbs是RDMA(Remote Direct Memory Access)的一种编程接口,它提供了底层、高效的编程接口,可以控制RDMA网络适配器中的硬件资源、创建和管理RDMA操作队列等功能,同时verbs接口也提供了一些原子操作、随机访问、远程直接内存访问等工具,从而实现了高效的、无锁的、直接内存访问 。

该测试工具集包含了带宽延迟基准测试,例如:

  • Send----ib_send_bwib_send_lat
  • RDMA Read----ib_read_bwib_read_lat
  • RDMA Write----ib_write_bwib_write_lat
  • RDMA Atomic----ib_atomic_bwib_atomic_lat
  • Native Ethernet (when working with MOFED2)----raw_ethernet_bwraw_ethernet_lat

2 安装

在克隆完仓库后,perftest的目录就会出现在你当前的目录下。

克隆仓库举例:

git clone <URL>
git clone https://github.com/linux-rdma/perftest.git

在执行完克隆后,执行以下命令:

  1. cd perftest/

  2. ./autogen.sh

  3. ./configure

    如果想在特定的目录中安装,可以使用–prefix=,例如:./configure --prefix=

  4. make

  5. make install

3 测试方法说明

基准测试使用CPU周期计数器获取时间戳,而无需上下文切换。然而,某些CPU架构(例如,英特尔80486或更早的PPC)并不具备这种功能。

延迟基准测试测量往返时间,但报告一半作为单向延迟。这意味着结果可能不适用于非对称配置。

在所有单向带宽基准测试中,客户端测量带宽。在双向带宽基准测试中,每个端测量它发起的流量的带宽,并在测量周期结束时,服务器将结果报告给客户端,客户端将它们组合在一起。

延迟测试报告最小、中位数和最大延迟结果。与平均延迟测量相比,中位数延迟通常对高延迟变化更不敏感。通常,由于预热效应,测量的第一个值是最大值。

长采样周期对测量精度影响非常有限。默认值为1000次迭代,这已经相当不错了。请注意,程序会保留与迭代次数成比例的内存占用的数据结构。设置非常高的迭代次数可能会对被测设备的性能产生负面影响,而这些影响与实际测试无关。如果必须使用高迭代次数,建议使用-N标志(No Peak)。

带宽基准测试可以运行多次迭代,也可以固定持续时间运行。使用-D标志指示测试运行指定的秒数。–run_infinitely标志指示程序一直运行,直到用户中断,并每5秒打印一次测量到的带宽。

延迟基准测试中的“-H”选项可以输出结果的直方图。请参考xgraph、ygraph、r-base(http://www.r-project.org/)、PSPP或其他统计分析程序。

重要提示:当在Infiniband链路上运行基准测试时,必须在开始基准测试之前在交换机或链路中的节点之一上运行子网管理器。

测试的架构包括:i686、x86_64和ia64。

4 测试说明

基准测试生成操作的合成流,这对于硬件和软件基准测试和分析非常有用。基准测试不是为模拟任何实际的应用流量而设计的。实际的应用流量可能受到许多参数的影响,因此仅基于这些基准测试的结果可能无法预测。

  • ib_send_lat:使用发送事务进行延迟测试
  • ib_send_bw:使用发送事务进行带宽测试
  • ib_write_lat:使用RDMA写事务进行延迟测试
  • ib_write_bw:使用RDMA写事务进行带宽测试
  • ib_read_lat:使用RDMA读事务进行延迟测试
  • ib_read_bw:使用RDMA读事务进行带宽测试
  • ib_atomic_lat:使用原子事务进行延迟测试
  • ib_atomic_bw:使用原子事务进行带宽测试

原始以太网接口基准测试:

  • raw_ethernet_send_lat:在原始以太网接口上进行延迟测试
  • raw_ethernet_send_bw:在原始以太网接口上进行带宽测试

5 运行测试

前提条件:

  • 内核版本为2.6
  • (内核模块)与libibverbs匹配
  • (内核模块)与librdmacm匹配
  • (内核模块)与libibumad匹配
  • (内核模块)与libmath (lm)匹配
  • (Linux内核模块)与pciutils (lpci)匹配。

服务器:使用 ./<test name> <options> 命令启动服务器,其中 <test name> 是测试的名称,<options> 是一些选项参数。

客户端:使用 ./<test name> <options> <server IP address> 命令启动客户端,其中 <test name> 是测试的名称,<options> 是一些选项参数,<server IP address> 是服务器的IP地址。

注意事项:

  • <server address> 可以是IPv4或IPv6地址。如果配置了IPoIB,可以使用 IPoIB 地址。

    IPoIB(Internet Protocol over InfiniBand),指利用物理IB网络(包括服务器上的IB卡、IB连接线、IB交换机等)通过IP协议进行连接,并进行数据传输。

    它提供了基于RDMA之上的IP网络模拟层,允许应用无修改的运行在InfiniBand网络上。但是,IPoIB性能比RDMA通信方式性能要低,大多数应用都会采用RDMA方式获取高带宽低延时的收益,少数的关键应用会采用IPoIB方式通信。

  • --help 选项可以列出可用的选项。

重要提示:必须将相同的选项传递给服务器和客户端。文章来源地址https://www.toymoban.com/news/detail-732038.html

所有测试的通用选项

  • -h, --help:显示帮助信息。
  • -p, --port=<port>:在端口 上监听或连接到端口(默认为 18515)。
  • -R, --rdma_cm:使用 rdma_cm 连接 QPs 并在这些 QPs 上运行测试。
  • -z, --com_rdma_cm:与 rdma_cm 模块通信以交换数据 - 使用常规 QPs。
  • -m, --mtu=<mtu>:QP MTU 大小(默认为从 ibv_devinfo 获取的活动 MTU)。
  • -c, --connection=<type>:连接类型 RC/UC/UD/XRC/DC/SRD(默认为 RC)。
  • -d, --ib-dev=<dev>:使用 IB 设备 (默认为找到的第一个设备)。
  • -i, --ib-port=<port>:使用 IB 设备的网络端口 (默认为 1)。
  • -s, --size=<size>:要交换的消息大小(默认为 1)。
  • -a, --all:从 2 运行到 2^23。
  • -n, --iters=<iters>:交换次数(至少为 100,默认为 1000)。
  • -x, --gid-index=<index>:测试使用来自命令的 GID 和 GID 索引。
  • -V, --version:显示版本号。
  • -e, --events:在 CQ 事件上休眠(默认为轮询)。
  • -F, --CPU-freq:即使 cpufreq_ondemand 模块失败也不会失败。
  • -I, --inline_size=<size>:以内联模式发送的最大消息大小。
  • -u, --qp-timeout=<timeout>:QP 超时 = (4 uSec)*(2^timeout)(默认为 14)。
  • -S, --sl=<sl>:服务级别(默认为 0)。
  • -r, --rx-depth=<dep>:接收队列深度(默认为 600)。

延迟测试选项

  • -C, --report-cycles:以 CPU 周期为单位报告时间。
  • -H, --report-histogram:打印所有结果(默认:仅摘要结果)。
  • -U, --report-unsorted:打印未排序的结果(默认已排序)。

带宽测试选项

  • -b, --bidirectional:测量双向带宽(默认为单向)。
  • -N, --no peak-bw:取消峰值带宽计算(默认包括峰值带宽)。
  • -Q, --cq-mod:在 完成后生成 Cqe。
  • -t, --tx-depth=<dep>:发送队列的大小(默认为 128)。
  • -O, --dualport:在双端口模式下运行测试(2 QPs)。两个端口都必须处于活动状态(默认关闭)。
  • -D, --duration=<sec>:以秒为单位运行测试的持续时间。
  • -f, --margin=<sec>:在持续时间内测量结果,结果必须在边缘范围内(默认为 2)。
  • -l, --post_list=<list size>:发送 WQEs 的列表大小为 (而不是单个帖子)。
    --recv_post_list=<list size>:接收 WQEs 的列表大小为 (而不是单个帖子)。
  • -q, --qp=<num of qp's>:进程中运行的 QP 数量(默认为 1)。
    --run_infinitely:在用户中断之前一直运行测试,每 5 秒打印一次结果。

ib_send_lat(发送延迟测试)和 ib_send_bw(发送带宽测试)的选项

  • -r, --rx-depth=<dep>:接收队列的大小(默认为 BW 测试中的 512)。
  • -g, --mcg=<num_of_qps>:向附加了 <num_of_qps> 个 QPs 的多播组发送消息。
  • -M, --MGID=<multicast_gid>:在多播中,使用 <multicast_gid> 作为组 MGID。

ib_atomic_lat(原子延迟测试)和 ib_atomic_bw(原子带宽测试)的选项

  • -A, --atomic_type=<type>:原子操作的类型,可选值为 {CMP_AND_SWAP,FETCH_AND_ADD}。
  • -o, --outs=<num>:未完成的读/原子请求的数量,也在 READ 测试中使用。

原始以太网发送带宽测试的选项

  • -B, --source_mac:源 MAC 地址,格式为 XX:XX:XX:XX:XX:XX(默认使用 GID 的 MAC 地址)。
  • -E, --dest_mac:目标 MAC 地址,格式为 XX:XX:XX:XX:XX:XX,必须输入。
  • -J, --server_ip:服务器 IP 地址,格式为 X.X.X.X(用于发送带有 IP 头的包)。
  • -j, --client_ip:客户端 IP 地址,格式为 X.X.X.X(用于发送带有 IP 头的包)。
  • -K, --server_port:服务器 UDP 端口号(用于发送带有 UDP 头的包)。
  • -k, --client_port:客户端 UDP 端口号(用于发送带有 UDP 头的包)。
  • -Z, --server:选择当前计算机的服务器端(–server/–client 必须被选中)。
  • -P, --client:选择当前计算机的客户端端(–server/–client 必须被选中)。

到了这里,关于RDMA性能测试工具集preftest_README的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PowerToys Windows 工具集

    项目 2023/04/19 18 个参与者 反馈 Microsoft PowerToys 是一组实用工具,可帮助高级用户调整和简化其 Windows 体验,从而提高工作效率。 安装 PowerToys x64 :支持 ARM64 :支持 当前可用的实用工具包括: Always on Top 通过 Always on Top,可使用快捷键方式 (⊞ Win+Ctrl+T) 将窗口固定在其他窗口

    2024年02月06日
    浏览(71)
  • 个人可能会用到的工具集

    Odin 完整的本地化系统工具 - I2 Localization 游戏互动叙事工具 - articy:draft 3 功能强大的对话系统 - Dialogue System 游戏音频解决方案 - Master Audio 2022 高品质寻路系统 - A* Pathfinding Project Pro 场景优化工具 - Mesh Baker 游戏输入控制器 - Rewired 优质触控控制插件 - Lean Touch+ 防破解!代码混

    2024年02月15日
    浏览(53)
  • 国内可用免费AI工具集

    1、Kimi Chat         由月之暗面科技有限公司(Moonshot AI)开发的人工智能助手。擅长中英文对话,能够提供安全、有帮助且准确的回答。它的能力包括阅读和理解用户上传的文件,访问互联网内容,以及结合搜索结果来回答问题。比如上传一份英文资料,可让它翻译为中

    2024年03月14日
    浏览(61)
  • layui框架学习(45: 工具集模块)

      layui的工具集模块util支持固定条、倒计时等组件,同时提供辅助函数处理时间数据、字符转义、批量事件处理等操作。   util模块中的fixbar函数支持设置固定条(2.7版本的帮助文档中叫固定块),是指固定在页面一侧的工具条元素,不随页面滚动条滚动,默认在页面右

    2024年02月07日
    浏览(57)
  • VS工具集及C++规范

    一、VS工具集列表: Visual Studio 2008:v90 Visual Studio 2010:v100 Visual Studio 2012:v110 Visual Studio 2013:v120 Visual Studio 2015:v140 (v140_xp) Visual Studio 2017:v141 Visual Studio 2019:v142 Visual Studio 2022:v143 二、VS支持的C++规范: C++17:     vs2017基本支持,vs2015部分支持。 C++14:     vs2017就可以

    2024年02月07日
    浏览(53)
  • 安卓逆向_0 --- 逆向、安全、工具集

    ​吾爱 工具集 官网:https://www.52pojie.cn/ 工具集:https://down.52pojie.cn  :https://www.52pojie.cn/thread-811805-1-1.html 看雪 工具集 官网:https://bbs.kanxue.com/ 工具集:https://tools.pediy.com 看雪 知识库 看雪 知识库:https://www.kanxue.com/chm.htm?id=14693 安卓 逆向环境 r0env 安装设置 r0env :https://m

    2024年02月09日
    浏览(72)
  • Visual Studio工具集相关(MSBuild)

    V100(VS2010)之前版本在MSBuild platsforms目录 V100(VS2010)之后的版本在VC中,经测试V140(VS2015)也在platforms中 -Visual Studio 2019: V142 -Visual Studio 2017: V141 -Visual Studio 2015: V140 -Visual Studio 2013: V120 -Visual Studio 2012: V110 -Visual Studio 2010: V100 -Visual Studio 2008: V90 -Visual Studio 2005: V80 -Visual Studio 2003: V71

    2024年02月08日
    浏览(64)
  • 【自然语言处理】3.1NLTK工具集

    NLTK为自然语言处理集 多语料库(Corpora) 词典资源(Lexicon),如WordNet 基本自然语言处理工具集 标记解析(Tokenization) 词干提取(Stemming) 词性标注(POS Tagging) 句法分析(Syntactic Parsing) 安装(command+R), pip install nltk 下载 nltk.download() 方法 停用词 因为语义不重要(如冠词)

    2024年02月11日
    浏览(56)
  • 云安全系列4:解析云安全工具集

    随着组织越来越多地将数据和应用转移到云端,云安全在确保工作负载安全方面变得至关重要。Gartener 就表示:“云优先战略现在已十分普遍,甚至在不愿承担风险的企业机构中也是如此。但由于缺乏确保安全云计算部署所必需的技能和工具,因此执行仍然受到阻碍。” 在了

    2024年02月02日
    浏览(45)
  • 每日一记:一个windows的bat脚本工具集

    最近在工作上遇到要校验文件的问题,例如,下载了一个文件之后,通过查看文件的md5来校验文件是否完整,这个动作在linux上很简单,但在windows上也不难,可以通过 certutil 命令实现,该命令通常可用于Windows系统。 由上述问题引发的一个思考就是,是否可以把windows上的一

    2024年01月17日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包