Add semaphore to limit RAM used by buffered outgoing requests #143
No reviewers
Labels
No labels
AdminAPI
Bug
Check AWS
CI
Correctness
Critical
Documentation
Ideas
Improvement
Low priority
Newcomer
Performance
S3 Compatibility
Testing
Usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#143
Loading…
Reference in a new issue
No description provided.
Delete branch "request-buffer-semaphore"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently Garage OOM's very often, probably because lots of requests get buffered in netapp client connections. This patch tries to avoid this by limiting the nubmer of outgoing requests that are buffered with a semaphore.
Status: making this PR so that I can make a build. Then I will test and try to get experimental data.
2c5336ba13
toface98681a
face98681a
to8b871284ab
Observation: it seems to work wonderfully. Garage now stays constantly under 400MB of RAM used in a scenario where it caused an OOM before. No performance degradation: data is still injected at maximum rate and network is still saturated. We could probably set the semaphore size to 200MB, wouldn't be a big problem.
EDIT: semaphore size set to 200MB
8b871284ab
to6f13d083ab
WIP: Add semaphore to limit RAM used by buffered outgoing requeststo Add semaphore to limit RAM used by buffered outgoing requests