[译]*RTI_DDS测试

RTI_DDS测试****介绍

1.1。测试性能

本文档介绍了如何为RTI Connext DDS测试应用程序的延迟和吞吐量。

有时称为负载延迟指的是<u>在给定吞吐量水平下的延迟</u>

这些测试会回答一些问题,例如:

  1. 对于给定的发布配置(例如,队列大小,负载设置),样本大小和订阅配置(例如,队列大小,侦听器与等待时间),我的网络的吞吐量是多少?

  2. 当我的网络负载很重时,我期望什么延迟?

  3. 对于给定的配置,网络上没有其他流量的最佳情况下的延迟是什么?

1.2。中间件

RTI Perftest可以针对RTI Connext DDS专业版和RIT Connext DDSMicro 3.0.0(2.4.11也有一些限制)进行构建(build)。

RTI Perftest也可以用于测试原始数据UDPv4或SHMEM性能。为此,RTI Perftest使用RTI Connext DDS Professional内部传输层与套接字进行交互。在这种模式下,RTI Perftest跳过DDS协议以直接发送数据,该数据使用RTI Connext DDS Professional使用的相同功能进行序列化。

1.3。概述

测试的发布端会尽可能快地写入数据。每隔几个样本(通过命令行配置),它都会发送一个特殊的样本,从订阅方请求回显。它使用此 交换来测量往返延迟。request -> echo

PerfTest概述图

image.png

启动1个发布者和1个或更多订阅者:

  1. 发布应用程序发布吞吐量数据;同时订阅了等待时间回复。

  2. 订阅应用程序订阅吞吐量数据,并在其中嵌入回显请求;同时发布延迟回显。

发布者打印延迟测试结果,而订阅者打印吞吐量结果。

1.4。延迟测试与吞吐量测试

RTI Perftest可以进行吞吐量测试和延迟测试。

1.4.1。吞吐量测试

当启动RTI Perftest发布者和订阅者应用程序时,默认为吞吐量测试。

在这种模式下,发布者开始尽快发送样本。一旦每个滞后时间计数样本(对于吞吐量测试,默认情况下为10000个样本),RTI Perftest都会标记该样本,以便由订阅者答复。答案是完全相同的样本。因此,根据发送样品的时间和发布者收到样品的时间,可以计算出往返时间(RTT)。

进行吞吐量测试可以提供最大吞吐量(Mbps),发布者可以在该最大吞吐量下将样本发送给订阅者。在此测试中获得的等待时间也将由发布者应用程序显示。但是,该延迟受以下事实的影响:发布者和订阅者将flooding the network并填充其所有内部队列(发送和接收者队列以及Nic队列)。(that latency is affected by the fact that the Publisher and Subscriber will be flooding the network and filling all their internal queues (sending and receiver queues, as well as the Nic queues). 因此,为了测量最佳情况下的纯延迟,应使用“ 延迟测试”模式。

1.4.2。延迟测试

在这种模式下,发布者方改变其行为:它发送的每个样本都被标记为等待时间样本(LatencyCount在这种情况下等于1)。在发送下一个样本(称为stop-and-wait模式或ping-pong模式)之前,发布者还会等到样本被发送回并被发布者接收之前。

这样,延迟测试模式便能够发送样本,从而确保所有RTI Connext DDS队列都为空。

更改操作模式以进行延迟测试的唯一要求是向-latencyTest发布方提供命令行参数。

RTI Perftest使用RTI Connext DDS rtiddsgen工具来生成其部分代码以及用于编译该代码的makefile / project文件。

从Github官方存储库克隆它:

git clone -b release/3.0 https://github.com/rticommunity/rtiperftest.git

运行测试时,请记住,吞吐量测试必然会给网络以及CPU带来沉重的负担。为了获得最准确的结果,并减少来自同事和IT部门的投诉,请在您自己拥有子网的时间和位置进行测试。该测试旨在测量负载网络条件下的延迟。它将自己产生这些负载:无需从外部产生它们(如果这样做,您的吞吐量结果可能没有意义)。

输出实施例

以下是性能测试的预期输出的示例。

发布者:

perftest_cpp -pub -noPrint -domain 27 -latencyCount 100000 -scan 32:64:256:1024:8192:32768:63000 -exec 30 -nic lo0RTI Perftest 2.3.2 (RTI Connext DDS 5.3.0)

Mode: THROUGHPUT TEST

(Use "-latencyTest" for Latency Mode)

Perftest Configuration:

Reliability: Reliable

Keyed: No

Publisher ID: 0

Latency count: 1 latency sample every 100000 samples

Data Size: 32, 64, 256, 1024, 8192, 32768, 63000

Batching: 8192 Bytes (Use "-batchSize 0" to disable batching)

Publication Rate: Unlimited (Not set)

Execution time: 30 seconds

Receive using: Listeners

Domain: 27

Dynamic Data: No

Asynchronous Publishing: No

XML File: perftest_qos_profiles.xml

Transport Configuration:

Kind: UDPv4 & SHMEM (taken from QoS XML file)

Use Multicast: False

Waiting to discover 1 subscribers ...Waiting for subscribers announcement ...Sending 50 initialization pings ...Publishing data ...

Length: 32 Latency: Ave 100 us Std 202.5 us Min 62 us Max 5543 us 50% 88 us 90% 107 us 99% 180 us 99.99% 5543 us 99.9999% 5543 us

Length: 64 Latency: Ave 70 us Std 53.7 us Min 45 us Max 1076 us 50% 63 us 90% 84 us 99% 142 us 99.99% 1076 us 99.9999% 1076 us

Length: 256 Latency: Ave 45 us Std 12.0 us Min 32 us Max 106 us 50% 41 us 90% 69 us 99% 78 us 99.99% 106 us 99.9999% 106 us

Length: 1024 Latency: Ave 28 us Std 4.5 us Min 25 us Max 68 us 50% 27 us 90% 31 us 99% 52 us 99.99% 68 us 99.9999% 68 us

Length: 8192 Latency: Ave 33 us Std 12.6 us Min 28 us Max 86 us 50% 29 us 90% 34 us 99% 86 us 99.99% 86 us 99.9999% 86 us

Length: 32768 Latency: Ave 46 us Std 32.9 us Min 35 us Max 172 us 50% 36 us 90% 53 us 99% 172 us 99.99% 172 us 99.9999% 172 us

Length: 63000 Latency: Ave 57 us Std 25.2 us Min 45 us Max 136 us 50% 48 us 90% 55 us 99% 136 us 99.99% 136 us 99.9999% 136 us

Finishing test...

Test ended.

·

· 订阅者

perftest_cpp -noPrint -domain 27RTI Perftest 2.3.2 (RTI Connext DDS 5.3.0)

Perftest Configuration:

Reliability: Reliable

Keyed: No

Subscriber ID: 0

Receive using: Listeners

Domain: 27

Dynamic Data: No

XML File: perftest_qos_profiles.xml

Transport Configuration:

Kind: UDPv4 & SHMEM (taken from QoS XML file)

Use Multicast: False

Waiting to discover 1 publishers ...Waiting for data...

Length: 32 Packets: 85900000 Packets/s(ave): 2880385 Mbps(ave): 737.4 Lost: 0 (0.00%)

Length: 64 Packets: 66500000 Packets/s(ave): 2232093 Mbps(ave): 1142.8 Lost: 0 (0.00%)

Length: 256 Packets: 37200000 Packets/s(ave): 1248203 Mbps(ave): 2556.3 Lost: 0 (0.00%)

Length: 1024 Packets: 15200000 Packets/s(ave): 506920 Mbps(ave): 4152.7 Lost: 0 (0.00%)

Length: 8192 Packets: 1900000 Packets/s(ave): 60350 Mbps(ave): 3955.2 Lost: 0 (0.00%)

Length: 32768 Packets: 1600000 Packets/s(ave): 52506 Mbps(ave): 13764.4 Lost: 0 (0.00%)

Length: 63000 Packets: 1100000 Packets/s(ave): 35481 Mbps(ave): 17882.6 Lost: 0 (0.00%)

Finishing test...Test ended.

[原文地址]:
https://community.rti.com/static/documentation/perftest/3.0/introduction.html#testing-performance

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容