-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Best effort + fragmentation + OS X = no images #93
Labels
question
Further information is requested
Comments
@dhood I was able to reproduce it in a VM. I will try to identify the problem. Thanks. |
@dhood & @richiprosima any update on this ? |
I've tested again in my VM with last version of Fast RTPS and it has good performance. Maybe @dhood may check it too. |
Thanks @richiprosima for the prompt response! |
yep looks fixed thanks! |
dhood
added a commit
to ros2/demos
that referenced
this issue
Aug 4, 2017
ros2/rmw_fastrtps#93 has been closed and flow controllers are no longer a requirement for this to pass.
dhood
added a commit
to ros2/demos
that referenced
this issue
Apr 19, 2018
ros2/rmw_fastrtps#93 has been closed and flow controllers are no longer a requirement for this to pass.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@richiprosima @JaimeMartin, we are trying to understand why particular conditions impact the reception of best effort data.
For high-bandwidth data, we have found a difference in performance on different operating systems. For example, with a single publisher publishing images (320x240 image x 1 byte/channel x 3 channels @ 30fps) and receiving them on the same machine with "best effort" reliability, it will work fine on linux, but not at all on OS X (no images are received).
Using a throughput controller, as you have suggested in Low bandwith when using FastRTPS #81 and Magic numbers in serialization #36, will fix the performance on OS X, but we are trying to understand (1) why there is a difference between operating systems and (2) if there is an alternative solution, since enabling the throughput controller will limit the rate at which users can receive data.
Instead of a throughput controller, disabling multicast on subscribers as suggested in this comment improves performance but only slightly.
Surprisingly, performance can be improved even without a throughput controller or disabling multicast, if the publishing frequency is increased from 30fps to 100fps. At 30fps, 0 messages are received, but at 100fps, ~20% of messages are received, at 250fps, ~40% of messages are received...
Do you have an idea of what causes the messages to have low reception rates even with a single sender, and the receiver on the same machine?
@wjwwood has suggested that perhaps "the kernel's udp buffer is getting overwhelmed by the bursty nature without the flow controller" but you may have more insight given your experience.
Do you know why reception rate improves with higher publishing frequency? Thanks in advance.
To reproduce using our image demo (on OS X):
The text was updated successfully, but these errors were encountered: