Try PubSub+

Slow Subscriber

AbuAbu Member Posts: 5

I want to identify slow subscriber client in my sandbox environment. This is to mock or test when a client is marked as a slow consumer. Currently our slow subscriber panel in Grafana shows all clients as normal (i.e. 0 = not slow subscriber). Can anyone please suggest how this can be replicated in test environment ?
Maybe one option could be if we have message rate option in sdkperf where we can forcefully slow the consumer while publishing messages at much higher rate ?



  • nramnram Member, Employee Posts: 37 Solace Employee

    Hi @Abu , You can try sdkperf with "-sd 1000 -sdc -1” flags. If you are using, also consider using -cor arg.

  • AbuAbu Member Posts: 5

    Thanks for sharing those as -sd and -sdc looks promising options. However, I am not sure where I could find examples as I am unable to find them under :
    Could you please share references/examples/Soldocs ?

  • nramnram Member, Employee Posts: 37 Solace Employee
    edited March 17 #4

    Hi @Abu , Here are sample commands: Pl tune per your requirement.

    Sample subscriber:
    Subscribe to test-queue with delayed ack. assumes test/topic is subscribed on to test-queue.

    ./ -cip tcp:// -cu [email protected] -cp 'mypassword' -sql test-queue -sd 100 -sdc -1 -cor

    Sample publisher:
    Publish 1K size message @ 1000/sec to test/topic

    ./ -cip tcp:// -cu [email protected] -cp 'mypassword' -ptl test/topic -mn 10000 -mr 1000 -msx 1024

  • AbuAbu Member Posts: 5

    Hi @nram , thank you for making it easier but this is the outcome:
    I published the messages at the rate and size you mentioned while my consumer was running on the other console.
    I observed that the messages were still being consumed at a very slow rate BUT that does not still qualifies to flag it as a "slow subscriber" in our Grafana Panel which has the query using the function "solace_client_slow_subscriber" . Also noticed when I run the following it consumes but intermittently and really slowly.
    $ ./ -cip tcps:// -cu [email protected] -cp 'password' -sql test-queue -sd 10000 -sdc -1 -cor
    Can you please suggest how can we stress the consumer (maybe more) to raise a flag "slow subscriber" for the client ?

  • nramnram Member, Employee Posts: 37 Solace Employee

    I believe its a function of the publishing rate, consumption rate, and duration of the test. @Aaron , do you have thoughts?

  • AbuAbu Member Posts: 5

    good news, finally I was able to replicate the "slow subscriber" function in action in my test env. It took some time (~15mins) with the subscriber "sdkperf_java" left running. @nram: thank you for the command samples however it would be nice to have access to the document for sdkperf_java to identify each options more appropriately.

  • nramnram Member, Employee Posts: 37 Solace Employee

    Glad you were able to test this out @Abu. IN addition to sdkperf docs available online, best option is to run -hm (more help) and inspect the output.

  • AaronAaron Member, Moderator, Employee Posts: 177 Solace Employee

    Late to the game on this one, team. Sorry! Sounds like you're sorted though. 👍 To make your consumer slower faster, try increasing the message rate... hopefully wouldn't take 15 minutes in the future.

    And yes, I use the -hm option all the time. Best thing is, you don't have to use it alone: you can have all your other params: -cip -cu -ptl -mn -mr -msa etc., and then if you forgot how to do one thing, just add on -hm | grep <blah> and look for a feature or name of something in the giant help screen that's displayed.

Sign In or Register to comment.