Skip to content

Introduce optional rate limiting for publisher routines in publish and spublish modes.#6

Closed
filipecosta90 wants to merge 33 commits intoRedisLabs:masterfrom
redis-performance:rps
Closed

Introduce optional rate limiting for publisher routines in publish and spublish modes.#6
filipecosta90 wants to merge 33 commits intoRedisLabs:masterfrom
redis-performance:rps

Conversation

@filipecosta90
Copy link
Copy Markdown
Contributor

This PR introduces optional rate limiting for publisher routines in publish and spublish modes.

Key Changes

  • Added --rps flag to control the maximum number of published messages per second (requests per second).
  • Added --rps-burst flag to configure the burst capacity of the rate limiter.
  • Default behavior remains unchanged: if --rps=0, the publisher sends at the maximum possible rate (unthrottled).

Example Usage

# Limit publisher to 10k msgs/sec with default burst
./pubsub-sub-bench --mode=publish --rps=10000

filipecosta90 and others added 30 commits January 15, 2023 20:09
Included -a and -user connection options. Publishing binary artifacts via github
Fixed artifact publishing error due to wrong bin name
Fixed artifact publishing error due to wrong bin name
…inux/arm64, windows/386, windows/amd64, darwin/amd64, darwin/arm64
build and publish in parallel binaries for: linux/386, linux/amd64, linux/arm64, windows/386, windows/amd64, darwin/amd64, darwin/arm64
* Setting overwrite to true on go publisher

* Fixing publish action
…. It adjust the connection, read, and write timeouts. (#7)
* Add RESP3 support ( --resp parameter )

* Using context.WithCancel after the move to radix v4

* Remove resp 2 from default

---------

Co-authored-by: ofekshenawa <ofek.shenawa@redis.com>
* Using go-redis for SSUBSCRIBE benchmark mode

* Using go > 1.18 for testing due to go-redis
…ecode. Current best performance vs all previous versions (#14)

* Enabled pprof cpuprofile collection

* Avoid context locking on pubsub due to PingInterval (disabled it)

* Using go-redis for SUBSCRIBE flow
…15)

* Removed radix usage from --oss-cluster-api-distribute-subscribers. Using clusterClient.MasterForKey() in case of cluster API and SSUBSCRIBE

* Fixd --pool_size option description
…enchmark (#16)

* Removed radix usage from --oss-cluster-api-distribute-subscribers. Using clusterClient.MasterForKey() in case of cluster API and SSUBSCRIBE

* Fixd --pool_size option description

* Ensure mutual exclusion on cluster nodes/slots update when starting benchmark

* Remove spurious Address string info from addresses slice -- pure stetic
* Dynamic Reconnect and Multi-Channel Support

* updating go-release-action to the latest
)

* Dynamic Reconnect and Multi-Channel Support

* updating go-release-action to the latest

* Reconnection improvements and extra metrics
Added --clients flag. included example in readme.
Co-authored-by: fcostaoliveira <filipe@redis.com>
filipecosta90 and others added 3 commits April 4, 2025 00:19
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

Successfully merging this pull request may close these issues.

2 participants