Skip to content
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

How to test latency performance with different data size? #74

Open
chaoli2 opened this issue Jul 9, 2019 · 7 comments
Open

How to test latency performance with different data size? #74

chaoli2 opened this issue Jul 9, 2019 · 7 comments

Comments

@chaoli2
Copy link

chaoli2 commented Jul 9, 2019

I notice that there are multiple message types defined with different data size. I've tried "Array1k"(default size in README), "Array4k", "Array16k", "Array60k"(why noy 64k...), "Array1m" and "Array2m" with below command or similar:

ros2 run performance_test perf_test -c ROS2 -l log -t Array4k --max_runtime 120

Above message types all work well.

But when I move forward to "Array4m", I got below error message:

ros2 run performance_test perf_test -c ROS2 -l log -t Array4m --max_runtime 120

terminate called after throwing an instance of 'std::runtime_error'
  what(): a topic with the requested name does not exist or communication mean not supported.

When I switch my test to PointCloud message type, there are not any responding when executing below command

ros2 run performance_test perf_test -c ROS2 -l log -t PointCloud1m --max_runtime 120

What command and parameter should I use when testing PointCloud message type?

@deeplearningrobotics
Copy link
Contributor

@chaoli2: I think there are two seperate problems here:

ros2 run performance_test perf_test -c ROS2 -l log -t Array4m --max_runtime 120

terminate called after throwing an instance of 'std::runtime_error'
  what(): a topic with the requested name does not exist or communication mean not supported.

This looks like a bug. Let me investigate.

  1. Try to reduce the rate you send messages. Maybe your system is overloaded.

@chaoli2
Copy link
Author

chaoli2 commented Jul 9, 2019

@deeplearningrobotics
Thanks for your reply. How can I reduce the rate? Is there any parameter to do this?

@deeplearningrobotics
Copy link
Contributor

@chaoli2: Yes. Running ros2 run performance_test perf_test --help will give you all the parameters. You should try --rate 10 as a start which will publish 10 samples a second. The default I think is a 1000 samples.

@chaoli2
Copy link
Author

chaoli2 commented Jul 10, 2019

@deeplearningrobotics
Thanks. The parameter works, but when I run

ros2 run performance_test perf_test -c ROS2 -l log -t PointCloud1m --max_runtime 120 --rate 10

I got a new error:

terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
  what(): could not create publisher: Liveliness QoS is not yet supported for fastrtps., at /tmp/binarydeb/rosdashing-rmw-fastrtps-shared-cpp-0.7.4/src/qos.cpp:167, at /tmp/binarydeb/ros-dashing-rcl-0.7.5/src/rcl/publisher.c:171

Do you get any idea about this?

@dejanpan
Copy link
Contributor

@chaoli2 the error is what it indeed is - FastRTPS in Dashing namely indeed does not have Liveliness QoS supported.

@esteve @MiguelCompany do you know why is performance_test trying to use it?

@MiguelCompany
Copy link
Contributor

@esteve @MiguelCompany do you know why is performance_test trying to use it?

I think this is the same as in #66. Please see my comment there for a possible solution.

@chaoli2
Copy link
Author

chaoli2 commented Jul 30, 2019

@MiguelCompany @dejanpan
Thanks for your update. I got the PointCloud performance test results of "512K", "1m", "2m" and "4m", but failed when testing "PointCloud8m".

ros2 run performance_test perf_test -c ROS2 -l log -t PointCloud8m --max_runtime 120 --rate 10

terminate called after throwing an instance of 'std::runtime_error'
  what(): a topic with the requested name does not exist or communication mean not supported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants