Latency test between 2 appliances in 2 Diff DC
Hi Team,
Looking of suggestion to do a latency test across DC **solace connectivity **connected via Bridge component.
Solace (DC 1) <> BRIDGE bi directional <> Solace (DC2)
How can we use sdkperf in this case , where publisher and consumer not connected to same DC ?
Any suggestion is very much appreciated!
Best Answer
-
Hi @nivesh , sdkperf publisher puts timestamp and tags in the message that the consumer can use to correlate. I should also have mentioned that the clocks on the performance hosts should be synchronized.
If you haven't already, pl check out these links:
https://docs.solace.com/SDKPerf/SDKPerf.htm#SDKPerf
https://docs.solace.com/SDKPerf/Command-Line-Options.htm0
Answers
-
Hello @nivesh , Iam assuming you are asking this question because you are used to running a single sdkperf instance to measure latency from one performance host to one broker. For the usecase you describe, most logical thing to do would be to run sdkperf from (atleast) two different performance hosts, local to each DC. You can still use latency measurement flags with sdkperf (e.g -lat).
Since you are doing bidirectional bridging, something like:Publishers on DC1 (sdkperf -ptl) -> DC1 <=bridge=> DC2 -> Consumers on DC2 (sdkperf -sql) Consumers on DC1 <- DC1 <=bridge=> DC2 <- Publishers on DC2
Its important to run publishers and consumers on hosts that are in close network proximity (eg; same subnet) to Solace brokers .
0 -
Hi @nivesh , sdkperf publisher puts timestamp and tags in the message that the consumer can use to correlate. I should also have mentioned that the clocks on the performance hosts should be synchronized.
If you haven't already, pl check out these links:
https://docs.solace.com/SDKPerf/SDKPerf.htm#SDKPerf
https://docs.solace.com/SDKPerf/Command-Line-Options.htm0 -
Hi @nivesh ,
Further to @nram 's reply:
It might be hard to synchronise the clocks across two different hosts down to the level required to get a reliable measurement.
In this case you could measure the round-trip latency by having one sdkperf on your second Solace broker respond back to the first sdkperf instance. This way all latency calculation would be done on the same host/clock and avoids the problem of clock synchronisation.
Your one-way latency can simply be derived from the round-trip latency (one way = round-trip / 2).To start your responder sdkperf instance connecting to your second Solace broker:
./sdkperf_c [… connection details e.g. cip etc …] -stl=latency -cm=reply
To start your "pinger" sdkperf instance connecting to your first Solace broker, run something like:
./sdkperf_c [… connection details e.g. cip etc …] -ptl=latency -l -lat -lwu=2 -psm -mn=100 -mr=10 -msa=100 -tod -prt
I'm using
latency
as the topic to send out the "pings". The sdkperf instances are using request-reply for the responses, which will be sent back to a topic starting with#P2P/
.
You'll need to configure those on your bridges for this to work.Best regards,
Christian2 -
Hi @nram @ChristianHoltfurth ,
HK to UK have 100 ms latency.
I publish msz from HK at X time so msz will reach to UK broker at, let's say say (X+100ms).
Consumer in HK receive the msz post X+100ms+100 ms , so what would be the latency shown in consumer report ?
Current time - (X+100ms) ?
OR
Current time - X(sending time) Time ?0