RTI Perftest 的大样本测试

RTI Perftest可以将样本从28 Bytes发送到2,147,483,135 Bytes(2 GBytes - 512 Bytes - 8 Bytes),这对应于RTI Connext DDS能够在单个样本中发送的最大有效载荷。

数据大小由命令行参数-dataLen <bytes> 。 根据此参数, RTI Perftest将自动配置某些RTI Connext DDS行为。

在样本量小于或等于63000字节的情况下,默认情况下, RTI Perftest将使用带有序列的类型(绑定设置为63000个元素)。 如果样本量大于63000字节,则RTI Perftest将自动切换到与前面提到的类型相同的类型,但使用无界序列。

这种行为背后的原因是,在RTI Perftest使用无界序列的情况下, RTI Connext DDS不会预先将序列分配给其最大值(与使用有界序列时相反)。 对于无界限成员,由RTI Connext DDS生成的代码将通过动态分配和解除分配内存来反序列化样本,以适应无界成员的实际大小。 无界 - -DynamicData (命令行参数-DynamicData )也支持序列和字符串。

除了使用Unbounded-Sequences外,通过设置大于63000字节的样本, RTI Perftest将启用异步发布 ,如RTI Connext DDS默认流量控制器。
 

用户想要使用Unbounded-Sequences,异步发布或不同于缺省值的流控制器但样本量小于63000字节的情况也受支持。 通过使用命令行参数 - 无-unbounded <managerMemory> , - -asynchronous和-flowController ,可以实现这些行为,请参阅测试参数部分以获取更多详细信息。

7.1  调整配置

在此处查找样本大小配置为1GB的示例:

  • Publisher:
bin/<architecture>/<release or debug>/perftest_cpp -pub -dataLen 1073741824
  • Subscriber:
bin/<architecture>/<release or debug>/perftest_cpp -sub -dataLen 1073741824

这是RTI Perftest接受的完全有效的配置,但是,在某些情况下,由于样本量较大,此情况下的通信将受到限制或非最佳。 因此可能需要进行一些额外的调整:

7.1.1  通过使用参数-sendQueueSize <number>
写入器端的发送队列的默认值是50 。 这可能是一个非常高的价值, RTI Connext DDS中间件可能无法在最佳条件下执行。 因此,对于大数据采样,建议将发送队列减少为较低值。

7.1.2  通过使用参数-pubRate <samples/s>
可以使用此参数来限制RTI Perftest发布样品的频率。 这有助于减少网络中的软件包数量,有助于实现更好的延迟和吞吐量数量。

7.1.3  通过使用流量控制器-flowController <default,1Gbps,10Gbps>
由于样本量大于63000字节, RTI Perftest将启用异步发布。 通过启用该功能,您还可以使用默认的流量控制器 ,这可能不是最佳的。 指定针对场景所在网络定制的流量控制器可能是一种好的做法。

RTI Perftest提供了使用专为10Gbps网络和1Gbps网络设计的流量控制器的选项。 但是,通过访问perftest_qos_profiles.xml配置文件,可以修改这2个流量控制器,并根据特定的网络要求定制它们。

<qos_profile name="BaseProfileQos">
    <participant_qos>
        . . .
        <property>
            <value>
                <element>
                    <name>dds.flow_controller.token_bucket.10Gbps.token_bucket.max_tokens</name>
                    <value>300</value>
                </element>
                <element>
                    <name>dds.flow_controller.token_bucket.10Gbps.token_bucket.tokens_added_per_period</name>
                    <value>200</value>
                </element>
                <element>
                    <name>dds.flow_controller.token_bucket.10Gbps.token_bucket.bytes_per_token</name>
                    <value>65536</value>
                </element>
                <element>
                    <name>dds.flow_controller.token_bucket.10Gbps.token_bucket.period.sec</name>
                    <value>0</value>
                </element>
                <element>
                    <name>dds.flow_controller.token_bucket.10Gbps.token_bucket.period.nanosec</name>
                    <value>10000000</value>
                </element>
            </value>
        </property>
        . . .
    </participant_qos>
</qos_profile>

流量控制器和发送队列的具体值将高度依赖于执行测试的场景和机器,但作为一般性建议,建议进行以下更改:

  • Publisher:
bin/<architecture>/<release or debug>/perftest_cpp -pub -dataLen 1073741824 -sendQueueSize 1 -flowController 1Gbps
  • Subscriber:
bin/<architecture>/<release or debug>/perftest_cpp -sub -dataLen 1073741824

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道格拉斯范朋克

播种花生牛奶自留田

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值