Title: The DDS Benchmarking Environment
1The DDS Benchmarking Environment
James Edmondson jedmondson_at_gmail.com
Vanderbilt University Nashville, TN
2Topics
- What is the DBE?
- What technologies does the DBE use?
- How does the DBE setup the environment?
- What problems had to be dealt with?
- What features will be added?
- Demonstration
- Conclusion and Wrap Up
3What is the DBE?
- DDS Benchmarking Environment
- Sets up the testing environment and framework
- Configures and launches implementation specific
services - Launches Publishers and Subscribers
- Coordinates interaction, logging info, and stats
collection - Allows for easily scaling the number of
participants - Sets up the statistics for collection by Bagatel
Publishers
Throughput
Networking
Subscribers
4What is the DBE?
- May be used to test other middleware or
technologies - Focus is on documented, reusable resources
Versatility
Dependability
Publishers
Throughput
Networking
Subscribers
5What does the DBE do?
6What does the DBE do?
7What does the DBE do?
8What does the DBE do?
9What does the DBE do?
10What does the DBE do?
Start the Subscribers
11What does the DBE do?
12What does the DBE do?
13What does the DBE do?
14What does the DBE do?
15What does the DBE do?
Start the Publisher
16What does the DBE do?
17What does the DBE do?
18What technologies does the DBE use?
- Scripts are written in Perl and use PerlAce
module - Remote execution is accomplished via SSH
- Logs, stats and test info are stored on a NFS
partition - All tests are currently ran on Fedora Core Linux
machines - Configured to test NDDS, TAO DDS, and Splice
- Synchronization between tests is maintained by
using lockfiles
DBE
Linux
SSH
NFS
Perl
lockfiles
19How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
20How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
21How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
Change ENV
22How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
Change ENV
23How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
Change ENV
Generate ID
24How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
Change ENV
Generate ID
25How does the DBE setup the environment?
- Most path information is updated using the
/.ssh/environment file - Some custom environment variables are set by DBE
scripts on individual clients - Individual Test IDs are assigned to each test
- Directories are created on the NFS partition for
stats and logs
DBE
Change ENV
Generate ID
Create Directories
26How does the DBE setup the environment?
- Publishers and subscribers are notified of test
settings - Result file locations
- QoS settings on a per subscriber basis
- Network settings
- Test specific settings (number of messages to
send, etc.)
Pass Test Info
DBE
Repos
Publishers
Subscribers
27What problems had to be dealt with?
- Synchronization amongst publishers and
subscribers
Subscriber
Next Test
Subscriber
Wait
Publisher
- Lack of a terminal with remote command execution
with SSH - TCP and UDP buffer sizes were too small
Publisher
Publisher
Buffer
Buffer
28What problems had to be dealt with?
- Flock() doesnt work as expected with stateless
NFS
flock(myfile)
touch(myfile.lock)
- Shared libraries are referenced locally
- Block buffering of stdout
block buffering
stdout
file
stderr
file
immediate
29What problems had to be dealt with?
- More problems on request )
30What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
31What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Publisher
32What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Publisher
33What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Publisher
Publisher
34What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Publisher
35What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Subscriber
Publisher
36What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Subscriber
Publisher
37What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Subscriber
Publisher
Subscriber
38What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Publisher
Subscriber
39What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Subscriber
Publisher
Subscriber
40What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Subscriber
Publisher
Subscriber
41What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Create Subscriber
Publisher
Subscriber
Subscriber
42What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Publisher
Subscriber
Subscriber
43What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Kill Subscriber 1
Publisher
Subscriber
Subscriber
44What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Kill Subscriber 1
Publisher
Subscriber
Subscriber
45What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Kill Subscriber 1
Publisher
Subscriber
46What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Kill Subscriber 1
Publisher
Subscriber
47What features will be added?
- New tests will require new features
- One such feature is per node scripting of
subscribers and publishers - Feature will allow dynamic starting and stopping
of participants
DBE
Publisher
Subscriber
48What other additions are planned?
- The ability to launch logging services
- Memory and CPU usage will need to be recorded
- The ability to test other middleware and
applications
49Demonstration
- Primer messages 100
- Stats messages 1000
- Test type throughput
- Implementation NDDS
50Conclusion and Wrap Up
- The DBE is an excellent suite of tools for
automating DDS testing on a networked environment - New test types will be added to gain further
insight into the DDS implementations - Many new features will also be added to better
reveal problems and benefits of the various DDS
products - We would like to thank our AFRL and Vanderbilt
Sponsors for their continued support