Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use appropriate defaults for threading options #114

Open
acogoluegnes opened this issue Sep 27, 2018 · 0 comments
Open

Use appropriate defaults for threading options #114

acogoluegnes opened this issue Sep 27, 2018 · 0 comments
Assignees
Milestone

Comments

@acogoluegnes
Copy link
Collaborator

Threading options to minimize the number of used threads for IoT workload can be involving. For a small IoT workload like the following

$ ./runjava com.rabbitmq.perf.PerfTest \
  --publishing-interval 5 --producer-random-start-delay 120 \
  --producers 100 --consumers 300 \
  --queue-pattern 'perf-test-%03d' \
  --queue-pattern-from 1 --queue-pattern-to 100

~ 1 K threads are used, which is OK. But for a bigger workload, e.g. 10 times more producers/consumers/queues, 10 K threads is too many. We can drastically reduce the number of used threads like the following:

$ ./runjava com.rabbitmq.perf.PerfTest \
  --publishing-interval 30 --producer-random-start-delay 300 \
  --producers 1000 --consumers 3000 \
  --queue-pattern 'perf-test-%04d' \
  --queue-pattern-from 1 --queue-pattern-to 1000
  --heartbeat-sender-threads 10 --nio-threads 20
  --consumers-thread-pools 100

Here ~ 150 threads are used, but the threading options aren't trivial.

PerfTest could come up with appropriate defaults for --heartbeat-sender-threads, --nio-threads, and --consumers-thread-pools as soon as --publishing-interval is used. These defaults could be overidden with the respective options in case they don't fit the workload.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant