Permalink
Newer
Older
100644 269 lines (268 sloc) 12.1 KB
2
<broker_name>Test Broker 1234</broker_name>
3
<description>This report provides a comparative benchmark of messaging servers that implement the Stomp 1.0 specification. It covers a wide variety of common usage scenarios. Each scenario is warmed up for 3 seconds before the performance samples are taken.</description>
4
<platform_name>Test Platform 4321</platform_name>
5
<platform_desc>
6
The STOMP server was run on a:
7
&lt;ul&gt;
8
&lt;li>CPU: 3.4 GHz Intel 2600K&lt;/li&gt;
9
&lt;li>Memory: 8 GB 2000 MHz DDR3&lt;/li&gt;
10
&lt;li>OS: Ubuntu 10.10&lt;/li&gt;
11
&lt;li>Disk: SATA 7200 RPM&lt;/li&gt;
12
&lt;li>Java: OpenJDK 64-Bit 1.6.0_20&lt;/li&gt;
13
&lt;/ul&gt;
14
The STOMP clients were run on:
15
&lt;ul>
16
&lt;li>Mac Pro Model: MacPro3,1&lt;/li&gt;
17
&lt;li>CPU: 2 x 3 GHz Quad-Core Intel Xeon&lt;/li&gt;
18
&lt;li>Memory: 8 GB 800 MHz DDR2&lt;/li&gt;
19
&lt;li>OS: Mac OS X 10.6.6&lt;/li&gt;
20
&lt;li>Disk: SATA 7200 RPM&lt;/li&gt;
21
&lt;li>Java: 64-Bit 1.6.0_22&lt;/li&gt;
22
&lt;/ul&gt;
23
The two machines were connected via 1 GigE.
24
</platform_desc>
25
<common>
26
<sample_interval>1000</sample_interval>
27
<blocking_io>false</blocking_io>
29
<drain>true</drain>
30
</common>
31
<group name="Persistent Queue Load/Unload - Non Persistent Queue Load">
32
<description>
33
Persistent Queue Load/Unload - Non Persistent Queue Load
34
</description>
35
<common>
36
<sample_count>30</sample_count>
37
<destination_type>queue</destination_type>
38
<destination_count>1</destination_count>
39
<destination_name>load_me_up</destination_name>
40
</common>
41
<scenario name="non_persistent_queue_load" label="Non Persistent Queue Load">
42
<clients name="20b_1a_1queue_0">
43
<producers>1</producers>
44
<consumers>0</consumers>
45
<message_size>20</message_size>
46
<persistent>false</persistent>
47
<sync_send>false</sync_send>
48
</clients>
49
</scenario>
50
<scenario name="persistent_queue_load" label="Persistent Queue Load">
51
<common>
52
<drain>false</drain>
53
</common>
54
<clients name="20b_1p_1queue_0">
55
<producers>1</producers>
56
<consumers>0</consumers>
57
<message_size>20</message_size>
58
<persistent>true</persistent>
59
<sync_send>true</sync_send>
60
</clients>
61
</scenario>
62
<scenario name="persistent_queue_unload" label="Persistent Queue Unload">
63
<clients name="20b_0_1queue_1">
64
<producers>0</producers>
65
<consumers>1</consumers>
66
</clients>
67
</scenario>
68
</group>
69
<group name="Fast and Slow Consumers">
70
<loop>
71
<var name="destination_type" label="Destination type">
72
<value label="Queue">queue</value>
73
<value label="Topic">topic</value>
74
</var>
75
</loop>
76
<description>
77
Scenario with fast and slow consumers
78
</description>
79
<scenario name="fast_slow_consumers_${destination_type}" label="Fast and Slow consumers on a ${destination_type}">
80
<common>
81
<sample_count>15</sample_count>
82
<destination_type>${destination_type}</destination_type>
83
<destination_count>1</destination_count>
84
</common>
85
<clients name="20b_1a_1${destination_type}_1fast">
86
<producers>1</producers>
87
<consumers>1</consumers>
88
<message_size>20</message_size>
89
<persistent>false</persistent>
90
<sync_send>false</sync_send>
91
</clients>
92
<clients name="20b_1a_1${destination_type}_1slow">
93
<producers>0</producers>
94
<consumers>1</consumers>
95
<consumer_sleep>100</consumer_sleep>
96
</clients>
97
</scenario>
98
</group>
99
<group name="Selecting Consumers on 1 destination">
100
<loop>
101
<var name="destination_type" label="Destination type">
102
<value label="Queue">queue</value>
103
<value label="Topic">topic</value>
104
</var>
105
</loop>
106
<description>
107
Scenario with consumers selecting on one destination
108
</description>
109
<scenario name="selecting_consumers_${destination_type}" label="Selecting Consumers on a ${destination_type}">
110
<common>
111
<sample_count>15</sample_count>
112
<destination_type>${destination_type}</destination_type>
113
<destination_count>1</destination_count>
114
</common>
115
<clients name="20b_color_2a_1${destination_type}_0">
116
<producers>2</producers>
117
<consumers>0</consumers>
118
<message_size>20</message_size>
119
<persistent>false</persistent>
120
<sync_send>false</sync_send>
121
<headers>
122
<client_type>
123
<header>color:red</header>
124
</client_type>
125
<client_type>
126
<header>color:blue</header>
127
</client_type>
128
</headers>
129
</clients>
130
<clients name="20b_0_1${destination_type}_1_red">
131
<producers>0</producers>
132
<consumers>1</consumers>
133
<selector>color='red'</selector>
134
</clients>
135
<clients name="20b_0_1${destination_type}_1_blue">
136
<producers>0</producers>
137
<consumers>1</consumers>
138
<selector>color='blue'</selector>
139
</clients>
140
</scenario>
141
</group>
142
<group name="Max Producer Throughput">
143
<loop>
144
<var name="size" label="Message Size">
145
<value label="20b">20</value>
146
<value label="1k">1024</value>
147
<value label="256k">262144</value>
148
</var>
149
</loop>
150
<description>
151
Scenario to find the maximum producer throughput, sendind messages to a topic without consumers.
152
</description>
153
<scenario name="maximum_throughput_at_${mlabel(size)}" label="Producer sending messages of ${mlabel(size)}">
154
<clients name="${mlabel(size)}_1a_1topic_0">
155
<sample_count>15</sample_count>
156
<producers>1</producers>
157
<consumers>0</consumers>
158
<message_size>${size}</message_size>
159
<persistent>false</persistent>
160
<sync_send>false</sync_send>
161
<destination_type>topic</destination_type>
162
<destination_count>1</destination_count>
163
</clients>
164
</scenario>
165
</group>
166
<group name="Partitioned Load Scenarios">
167
<loop>
168
<var name="size" label="Message Size">
169
<value label="20b">20</value>
170
<value label="1k">1024</value>
171
<value label="256k">262144</value>
172
</var>
173
<var name="destination_type" label="Destination type">
174
<value label="Queue">queue</value>
175
<value label="Topic">topic</value>
176
</var>
177
<var name="persistent" label="Persistent">
178
<value label="Non Persistent">false</value>
179
<value label="Persistent">true</value>
180
</var>
181
<var name="load" label="Number of producers, consumers and destinations">
182
<value label="1x1x1">1</value>
183
<value label="5x5x5">5</value>
184
<value label="10x10x10">10</value>
185
</var>
186
</loop>
187
<description>
188
These scenarios sample performance as partitioned load is applied. Each destination only has 1 and only 1 producer and consumer attached.
189
</description>
190
<scenario name="partitioned_load_${mlabel(size)}_${destination_type}_${persistent}_${load}" label="Partitioned Load Scenario - Size: ${mlabel(size)} Destination: ${destination_type} Persistent: ${persistent} Load: ${load}">
191
<clients name="${mlabel(size)}_${load}${plabel(persistent)}${slabel(persistent)}_${load}${destination_type}_${load}">
192
<sample_count>15</sample_count>
193
<producers>${load}</producers>
194
<consumers>${load}</consumers>
195
<message_size>${size}</message_size>
196
<persistent>${persistent}</persistent>
197
<sync_send>${persistent}</sync_send>
198
<destination_type>${destination_type}</destination_type>
199
<destination_count>${load}</destination_count>
200
</clients>
201
</scenario>
202
</group>
203
<group name="Fan In/Out Load Scenarios">
204
<loop>
205
<var name="destination_type" label="Destination type">
206
<value label="Queue">queue</value>
207
<value label="Topic">topic</value>
208
</var>
209
<var name="persistent" label="Persistent">
210
<value label="Non Persistent">false</value>
211
<value label="Persistent">true</value>
212
</var>
213
<var name="producers" label="Number of producers">
214
<value>1</value>
215
<value>5</value>
216
<value>10</value>
217
</var>
218
<var name="consumers" label="Number of consumers">
219
<value>1</value>
220
<value>5</value>
221
<value>10</value>
222
</var>
223
</loop>
224
<description>
225
These scenarios multiple consumers and producers communicate via one shared destination. All messages sent have a 20 byte payload.
226
</description>
227
<scenario name="fan_in_out_${destination_type}_${persistent}_${producers}_${consumers}" label="Fan In/Out Load Scenario - Destination: ${destination_type} Persistent: ${persistent} Producers: ${producers} Consumers: ${consumers}">
228
<clients name="20b_${producers}${plabel(persistent)}${slabel(persistent)}_1${destination_type}_${consumers}">
229
<sample_count>15</sample_count>
230
<producers>${consumers}</producers>
231
<consumers>${producers}</consumers>
232
<message_size>20</message_size>
233
<persistent>${persistent}</persistent>
234
<sync_send>${persistent}</sync_send>
235
<destination_type>${destination_type}</destination_type>
236
<destination_count>1</destination_count>
237
</clients>
238
</scenario>
239
</group>
240
<group name="Durable Subscriptions on a Topic">
241
<loop>
242
<var name="persistent" label="Persistent">
243
<value label="Non Persistent">false</value>
244
<value label="Persistent">true</value>
245
</var>
246
<var name="consumers" label="Number of consumers">
247
<value>5</value>
248
<value>20</value>
249
</var>
250
</loop>
251
<description>
252
These scenarios test durable subscriptions on a topic. All messages sent have a 1kb payload.
253
</description>
254
<scenario name="durable_subscritions_on_topic_${persistent}_${consumers}" label="Durable Subscriptions on a Topic - Persistent: ${persistent} Consumers: ${consumers}">
255
<clients name="1k_1${plabel(persistent)}${slabel(persistent)}_1topic_${consumers}">
256
<sample_count>15</sample_count>
257
<producers>1</producers>
258
<consumers>${consumers}</consumers>
259
<message_size>1024</message_size>
260
<persistent>${persistent}</persistent>
261
<sync_send>${persistent}</sync_send>
262
<destination_type>topic</destination_type>
263
<destination_count>1</destination_count>
264
<durable>true</durable>
265
</clients>
266
</scenario>
267
</group>
268
</scenarios>