NOREF Limit requests handled by workers #1901
Merged
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.
This update introduces two configuration settings for our gunicorn server:
max_requests
Limits the number of total requests that can be handled by a single gunicorn worker. The gunicorn docs state this is intended to help limit effects of memory leaksmax_requests_jitter
This randomizes the exact number of requests to prevent multiple workers from being restarted simultaneouslyThe goal of this work is to hopefully limit memory consumption (which tends to run at 90% or greater in production) and to reduce the effect of
QueuePool
errors that result from long-running workers. At the current setting of 500 this should result in workers being restarted roughly every 45-60 minutes. This can be adjusted after review of effects on performance in QA (and production if no issues are raised in QA).