forked from torvalds/linux
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
During GC, IO performance would be reduced by half or more. According to our test data, when nvme is used as the cache, it takes about 1ms for GC to handle each node (block 4k and bucket 512k). So, GC process at least 100 nodes each time, resulting in IOPS decreasing by half and latency increasing. This patch add some cost statistics and hold the inflight peak. When IO depth up to maximum, gc sleep and handle these requests. GC sleep time dynamically calculate based on gc_cost. Signed-off-by: Mingzhe Zou <mingzhe.zou@easystack.cn>
- Loading branch information
1 parent
b253435
commit 9934df9
Showing
2 changed files
with
78 additions
and
13 deletions.
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