當前位置:編程學習大全網 - 源碼下載 - [譯] Fast RTPS與Cyclone DDS與OpenSplice DDS對比測試

[譯] Fast RTPS與Cyclone DDS與OpenSplice DDS對比測試

比較了三種情況下的 延遲 吞吐量 :雙主機,進程間 和 進程內。

在所有測試的情況下,Fast RTPS所提供的等待時間更短,吞吐量更高。

測試環境

系統為: Ubuntu 18.04.2 LTS bionic

內核 為: Linux 4.15.0-64通用內核

機器的規格為:

架構:x86_64

處理器:8

每個核心線程數:2

型號名稱:Intel(R)Xeon(R)CPU E3-1230 v6 @ 3.50GHz

DDS中間件版本:2019年9月17日在主倉庫上的最新版本

Fast RTPS 1.9.x:010ac53

Cyclone DDS :801c4b1

OpenSplice DDS:v6.9

對比測試項 (延遲、吞吐量)

延遲測試

測量延遲方法:

在網絡計算中,延遲時間定義為 對消息在系統上花費的時間的度量 。也就是說,衡量消息自發送方發送以來經過的時間直到被接收方接收到為止 。為了避免發布者和訂閱者所在的系統之間的時鐘同步問題,壹種近似的延遲方法是通過往返時間。在這種情況下,發布者發送壹條消息,並等待訂閱者將其發送回(類似於乒乓範式),從而測量發布者的發送操作與發布者的接收操作之間的經過時間。為了獲得等待時間的近似值,將測得的往返時間除以2。

統壹測試環境和配置 :

為了執行 測試 ,每種消息大小都會發送 10000 條消息,並提取最小和平均測量值。

DDS QoS 的配置如下:

可靠性(Reliability):RELIABLE

歷史記錄類型(History kind):KEEP_LAST

歷史深度(History depth):1

持久性(Durability):VOLATILE

-本地主機比較-進程內:

結論 :本地主機和雙主機的比較都顯示了Fast-RTPS與其他兩個實現之間的明顯區別。可以看出,Fast-RPTS的平均延遲始終小於其他實現的最小值。重要的是要註意,Fast-RTPS延遲對於更多的有效負載是穩定的,與CycloneDDS或OpenSplice相比,在較大的有效負載中以較小的增加速率增加。在這種情況下,還值得註意的是,尤其是在雙主機情況下,Fast-RTPS均值更緊密地遵循最小值,這意味著最小值和最大值之間的差異始終都較小(均值周圍的分布較窄)。

吞吐量 測試

測量吞吐量方法:

在網絡計算中, 吞吐量定義為每單位時間可以通過系統發送/接收的信息量的度量,即每秒測量多少比特穿越系統的度量 。正常的測量操作是使發布者在壹定時間( burst interval)內發送大量消息。在完成發送之後,如果操作花費的時間少於突發間隔( burst interval),則發布者將處於休息狀態,直到間隔完全過去(否則,發布者將無法休息)。執行此操作,壹直到測試時間。在接收方,接收信息,記錄接收到第壹條消息的時間,並對到達的每條消息進行計數。測試完成後,接收方可以計算接收采樣率。知道每個消息的大小(以位為單位),吞吐量就是采樣率乘以消息大小的乘積。下圖說明了此過程。

統壹測試環境和配置:

通過使用以下工具進行測試比較:

為了執行實驗,使用了100、200、500、1000、10000、20000、30000、40000和50000條消息的需求。

為了執行實驗,使用了0、10、20、30、40、50、60、70、80、90和100 ms的突發間隔 ( burst intervals ) 。

壹些內核的緩沖區已 配置為 以最大化信息流,

net.core.rmem_default = 21299200

net.core.rmem_max = 21299200

net.ipv4.udp_mem = 102400 873800 21299200

net.core.netdev_max_backlog = 30000

使用以下軟件版本進行了 測試 :

Fast-RTPS commit:0bcafbde1c6fa3ef7285819980f932df910dba61

CycloneDDS commit: aa5236dea46b82e6db26a0c87b90cedeca465524

OpenSplice version:v6.9

DDS QoS 的配置如下:

可靠性(Reliability):RELIABLE

歷史記錄類型(History kind):KEEP_ALL

持久性(Durability):VOLATILE

結論 : 本地主機比較顯示了Fast-RTPS與其他兩個實現之間的明顯區別。可以看出,Fast-RPTS的吞吐量是每個有效載荷最高的。關於雙主機比較,Fast-RTPS和CycloneDDS都顯示了幾乎等效的吞吐量,最高有效負載為256字節,但是大於256字節後兩者之間的差異變得很大,可以看出Fast-RTPS 更出色。(?但是什麽在2048->4096->8192會掉下來?)

最後: 這表明Fast-RTPS是在所有測試情況下最快的消息傳遞實現。此外,在處理消息傳遞延遲時,Fast-RTPS是最壹致的壹種。這壹切都意味著,使用Fast-RTPS,經歷的延遲是最短的,並且始終保持幾乎相同。

整理翻譯自: /index.php/resources-all/performance/fast-rtps-vs-cyclone-dds

  • 上一篇:如何寫投資計劃書
  • 下一篇:《大清風雲》最新txt全集下載
  • copyright 2024編程學習大全網