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

Tank - Nonlinear Workload Model Release #269

Merged
merged 53 commits into from
Oct 27, 2023
Merged

Conversation

Zakaria-Kofiro
Copy link
Collaborator

@Zakaria-Kofiro Zakaria-Kofiro commented Sep 20, 2023

Tank - Nonlinear Workload Model Release

Introducing a new feature to Tank, the Nonlinear Workload Model! This model ramps up users gradually over the ramp time with slower growth of users at the start and end of the ramp. This ramp type better aligns with real-world user behavior and also works better to test multiple services by eliminating service spikes otherwise produced by the current linear model. See #76.

The nonlinear workload model produces an S-curve growth into a steady state:

Screenshot 2023-09-19 at 5 50 14 PM

The model takes in several new parameters to achieve this:

  • Target User Ramp Rate:

    • The ending ramp rate in users/sec for the nonlinear user ramp. This will inject users at regular intervals from the starting rate of 0 users/sec to the target rate for the provided ramp duration.
  • Region Percentage:

    • The desired user distribution between regions - this value dictates the number of agents/injectors to create per region based on the number of agents provided
  • Number of Agents:

    • The desired number of agents to run for the nonlinear job - multiple agents will share the workload in ramping up users to the desired user ramp rate, but the same ramp can be done with a single agent as well.

Along with the ramp duration and simulation time, these parameters dictate the resulting S-curve. The resulting total concurrent users at a steady state directly correlates with user duration - a ramp duration of 5 minutes and a user duration of 5 minutes with 10 users will result in a 3000 user steady state, hitting the steady state in 10 minutes as seen above.

This new feature also brings in the following changes:

  • UI toggle to switch between linear and nonlinear workload types
  • QOL UI changes - Job Details now show the number of agents that will be created per region, each job displays its workload type and target users or user ramp, and the ramp-up can be tracked through the Agent Tracker UI
  • JSON logging to track non-linear workload logs
  • Cloudwatch Metrics for active user count, TPS, session starts, and current ramp rate per agent
  • Ability to pause and resume the non-linear ramp at its current ramp rate (stopping the job shares the same behavior as linear, allowing the remaining threads to finish up)

Please make sure these check boxes are checked before submitting

  • ** Squashed Commits **
  • ** All Tests Passed ** - mvn clean test -P default

** PR review process **

  • Requires one +1 from a reviewer
  • Repository owners will merge your PR once it is approved.

zkofiro added 30 commits June 5, 2023 11:01
@Zakaria-Kofiro Zakaria-Kofiro marked this pull request as ready for review September 22, 2023 15:50
@Zakaria-Kofiro Zakaria-Kofiro changed the title Tank - Nonlinear Ramp Rate Release Tank - Nonlinear Ramp Release Sep 22, 2023
@Zakaria-Kofiro Zakaria-Kofiro changed the title Tank - Nonlinear Ramp Release Nonlinear Ramp Release Sep 23, 2023
@Zakaria-Kofiro Zakaria-Kofiro removed the request for review from kevin-mcgoldrick October 6, 2023 20:50
@Zakaria-Kofiro Zakaria-Kofiro changed the title Nonlinear Ramp Release Tank - Nonlinear Workload Model Release Oct 27, 2023
@Zakaria-Kofiro Zakaria-Kofiro merged commit cf7b7d8 into master Oct 27, 2023
@Zakaria-Kofiro Zakaria-Kofiro deleted the zkofiro/model-workflow branch October 27, 2023 20:11
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.

None yet

2 participants