Re: [PATCH 0/1] bcache: reduce front IO latency during GC
Kent Overstreet <[email protected]>
| Newsgroups | org.kernel.vger.linux-bcache |
|---|---|
| Message-ID | <wtfuhfntbi6yorxqtpcs4vg5w67mvyckp2a6jmxuzt2hvbw65t@gznwsae5653d> |
On Mon, Apr 14, 2025 at 03:44:03PM -0700, Robert Pang wrote: > In performance benchmarks on disks with bcache using the Linux 6.6 kernel, we > observe noticeable IO latency increase during btree garbage collection. The > increase ranges from high tens to hundreds of milliseconds, depending on the > size of the cache device. Further investigation reveals that it is the same > issue reported in [1], where the large number of nodes processed in each > incremental GC cycle causes the front IO latency. > > Building upon the approach suggested in [1], this patch decomposes the > incremental GC process into more but smaller cycles. In contrast to [1], this > implementation adopts a simpler strategy by setting a lower limit of 10 nodes > per cycle to reduce front IO delay and introducing a fixed 10ms sleep per cycle > when front IO is in progress. Furthermore, when garbage collection statistics > are available, the number of nodes processed per cycle is dynamically rescaled > based on the average GC frequency to ensure GC completes well within the next > subsequent scheduled interval. > > Testing with a 750GB NVMe cache and 256KB bucket size using the following fio > configuration demonstrates that our patch reduces front IO latency during GC > without significantly increasing GC duration. Have you been looking at bcachefs yet? It solves all the latency issues in bcache.