-
Notifications
You must be signed in to change notification settings - Fork 104
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
Ratio algorithm for dynamic load balancing #718
Merged
Changes from 38 commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
9cd0798
Separate percentile numbers from percentile values.
keshonok 6423d3f
Remove the possibility of negative array indices.
keshonok 2951467
Put all APM stats together in the same indexed array.
keshonok d276901
Implement scheduler and server options related to dynamic sheduling.
keshonok 2967e12
Rework processing of server-related configuration entries.
keshonok 183af75
Initial barebone version of ratio scheduler.
keshonok aa8f44f
Incorporate ALB algorithm suggested by @krizhanovsky.
keshonok c126598
Remove locks from tfw_sg_release_all().
keshonok 7fadba9
Better sequence tracking for APM stats.
keshonok 03b7a50
Get rid of duplicate EXPORT_SYMBOL(tfw_apm_stats) in unit tests.
keshonok 1f8266b
Full support of static or dynamic weights of different values.
keshonok 5172354
Merge branch 'master' into ab-alb-2
keshonok f204ebb
Bugfix: Adjust the sum of ratios after min and max ratios are exchanged.
keshonok b000209
Unit tests for Ratio Scheduler based on unit tests for RR scheduler.
keshonok 5640772
Update the docs with new options related to ratio scheduler.
keshonok c55bf5f
Better description of ratio scheduler behavior and the weight option.
keshonok bab5e18
Remove RR scheduler. It's now replaced by Ratio scheduler.
keshonok ff0cb23
Remove .add_conn() callback. The functionality is moved to .add_grp().
keshonok f8c11b3
Address code review comments.
keshonok 4340f5d
Predictive Scheduler implementation (simple linear regression).
keshonok 8c4e508
Wait for RCU callbacks to complete before releasing memory.
keshonok 7d167e6
Remove a tiny piece of dead code.
keshonok 3eaab0f
Count the remainder from division by two (even/odd numbers).
keshonok 50d3a83
Fix the initial value of RBCTL's entry_cnt in APM.
keshonok 12280c9
Fix a WARNING() spewed by rcu_process_callbacks().
keshonok 3d75192
Serialize APM stats data updates and APM stats values calculation.
keshonok a163fcc
Address code review issues raised by @ikoveshnikov.
keshonok 8ee11de
Correctly release server's APM data on cleanup.
keshonok e8473a0
Fix schedulers unit tests - set sg->flags before sched registration.
keshonok bf850b8
Multiple minor changes to fix issues raised in code reviews.
keshonok 7ef13ec
Merge branch 'master' into ab-alb-2
keshonok f6e11be
Fix the implementation of predictive ratio algorithm.
keshonok 1850314
Replace ratio->free with ratio->busy for better clarity.
keshonok 42140b3
Code rework to address comments in recent code review.
keshonok d893c06
Don't mix signed and unsigned types in calculations.
keshonok 5c37ed1
A bit more data for servers in /proc/tempesta/servers/*.
keshonok a333f4c
Rework APM modules to work with per-CPU arrays for incoming data.
keshonok d834587
Add list_head argument to tfw_cfg_sg_ratio_adjust() for unit tests.
keshonok a044aae
Small cleanups in apm.c.
keshonok File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This patch replaces round-robin scheduler with ratio. Description of new options in
Readme
is great, but the sample configuration fileetc/tempesta_fw.conf
was not updated at all.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Functional tests sets scheduler to a default value (which was
round-robin
) in this file . This should be fixed, otherwise almost all the functional tests will be broken.