mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 21:35:45 +02:00
extentwalker: don't fetch absurd numbers of extents just to throw them away
ExtentWalker doesn't gain significant benefits from caching, and the extra SEARCH_V2 ioctls were blamed for a 33% kernel CPU overhead by perf. Reduce the number of extents to 16 in lieu of fixing the caching. This gives a significant speed boost on CPU-bound workloads compared to the original 1024--almost 40% faster on a single SSD with a filesystem consisting of raw VM images mounted with compress=zstd. This also seems to reduce LOGICAL_INO overhead. Perhaps SEARCH_V2 and LOGICAL_INO were trying to lock the same extents, and interfering with each other? Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
parent
f053e0e1a7
commit
d4b3836493
@ -58,7 +58,7 @@ namespace crucible {
|
||||
|
||||
virtual Vec get_extent_map(off_t pos);
|
||||
|
||||
static const unsigned sc_extent_fetch_max = 1024;
|
||||
static const unsigned sc_extent_fetch_max = 16;
|
||||
static const unsigned sc_extent_fetch_min = 4;
|
||||
static const off_t sc_step_size = 0x1000 * (sc_extent_fetch_max / 2);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user