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

Allow --no-web together with --master for automation #333

Merged
merged 1 commit into from
Apr 12, 2017

Conversation

undera
Copy link
Contributor

@undera undera commented Sep 3, 2015

Summary:

  • removed limitation to not have --no-web together with --master
  • added --expect-slaves option to tell how many slaves expected to connect
  • on all expected slaves are connected, master initiates hatching

Taurus mailing list discussion for reference: https://groups.google.com/forum/#!topic/codename-taurus/Gs3VdphRSjo

@ghost
Copy link

ghost commented Sep 3, 2015

Hi @undera Will this functionality allow us to run a master and multiple slaves using the Taurus config?

@undera
Copy link
Contributor Author

undera commented Sep 3, 2015

Yep. It's not 100% ready, but enough to get the idea.

@heyman
Copy link
Member

heyman commented Jun 13, 2016

I like this functionality, though maybe I'd prefer the flag to be called --expected-slave-count. This, together with an option to specify a time limit on the test (#196) should be enough for letting people run Locust tests in their CI cycle without any hacks. Also, I'd be ready to drop the -n/--num-request flag, since I think it's a little weird stop condition, and setting a time limit should work just as well in almost every case.

Any thoughts on this?

@undera
Copy link
Contributor Author

undera commented Jun 13, 2016

From my experience, some people are willing to have exact control on number if requests made. For example, they doing benchmark of 100 000 requests and compare them to each other. Usually I'm implementing in my tools the logic "stop whatever end first, requests limit or time limit".

@undera
Copy link
Contributor Author

undera commented Jun 13, 2016

I'm fine with the name --expected-slave-count

@@ -115,6 +116,15 @@ def parse_options():
help="Port that locust master should bind to. Only used when running with --master. Defaults to 5557. Note that Locust will also use this port + 1, so by default the master node will bind to 5557 and 5558."
)

parser.add_option(
'--expect-slaves',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally I prefer --min-slaves as it better communicates what the behavior is. Since you can have greater than the number of expected slaves with this implementation. See https://github.com/locustio/locust/pull/372/files#diff-6f782ed63a6a642694db58c0d5cdd932R125

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't the current implementation start close to immediately once the min slave count has been reached? If so, how would I go about to start a test with more slaves than min_slaves (other than just spawning them all at the same time and hoping that they would connect before the the poll check)?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it would but I think that's the behavior I would expect. I think most people using this feature would bring up the master process specifying --min-slaves 10, then bring up 10 slave processes to connect to the master. If I wanted 11 slaves, I would simply indicate --min-slaves 11. However if I thought I wanted 10 slaves, but later realized I need 11 slaves to reach my desired throughput, then I could add another 1 slave after the original 10 slaves have already started swarming.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case I think i'd still prefer --num-slaves or --expected-slave-count. Though it might be bikeshedding, and I'm fine with --min-slaves as well :).

but later realized I need 11 slaves to reach my desired throughput, then I could add another 1 slave after the original 10 slaves have already started swarming

That would require us to have some kind of automatic re-balancing of simulated users when new slaves connect.

@danielward
Copy link

@heyman @justiniso Are there any updates on merging in this feature?

@gruzewski
Copy link

gruzewski commented Apr 4, 2017

+1 :)

@justiniso justiniso merged commit fe7755a into locustio:master Apr 12, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants