> 2022年7月6日 04:49,Eric Wheeler <bcache@xxxxxxxxxxxxxxxxxx> 写道: > > On Sat, 25 Jun 2022, Coly Li wrote: >>> 2022年6月25日 14:29,Nikhil Kshirsagar <nkshirsagar@xxxxxxxxx> 写道: >>> >>> Hello, >>> >>> I've been doing some performance tests of bcache on 5.15.0-40-generic. >>> >>> The baseline figures for the fast and slow disk for random writes are >>> consistent at around 225MiB/s and 3046KiB/s. >>> >>> But the bcache results inexplicably drop sometimes to 10Mib/s, for >>> random write test using fio like this - >>> >>> fio --rw=randwrite --size=1G --ioengine=libaio --direct=1 >>> --gtod_reduce=1 --iodepth=128 --bs=4k --name=MY_TEST1 >>> >>> WRITE: bw=168MiB/s (176MB/s), 168MiB/s-168MiB/s (176MB/s-176MB/s), >>> io=1024MiB (1074MB), run=6104-6104msec >>> WRITE: bw=283MiB/s (297MB/s), 283MiB/s-283MiB/s (297MB/s-297MB/s), >>> io=1024MiB (1074MB), run=3621-3621msec >>> WRITE: bw=10.3MiB/s (10.9MB/s), 10.3MiB/s-10.3MiB/s >>> (10.9MB/s-10.9MB/s), io=1024MiB (1074MB), run=98945-98945msec >>> WRITE: bw=8236KiB/s (8434kB/s), 8236KiB/s-8236KiB/s >>> (8434kB/s-8434kB/s), io=1024MiB (1074MB), run=127317-127317msec >>> WRITE: bw=9657KiB/s (9888kB/s), 9657KiB/s-9657KiB/s >>> (9888kB/s-9888kB/s), io=1024MiB (1074MB), run=108587-108587msec >>> WRITE: bw=4543KiB/s (4652kB/s), 4543KiB/s-4543KiB/s >>> (4652kB/s-4652kB/s), io=1024MiB (1074MB), run=230819-230819msec >>> >>> This seems to happen after 2 runs of 1gb writes (cache disk is 4gb size) >>> >>> Some details are here - https://pastebin.com/V9mpLCbY , I will share >>> the full testing results soon, but just was wondering about this >>> performance drop for no apparent reason once the cache gets about 50% >>> full. >> >> >> It seems you are stuck by garbage collection. 4GB cache is small, the >> garbage collection might be invoked quite frequently. Maybe you can see >> the output of ’top -H’ to check whether there is kernel thread named >> bache_gc. > > Hi Nikhil, > > Do you have Mingzhe's GC patch? It might help: > https://www.spinics.net/lists/linux-bcache/msg11185.html > > Coli, did Mingzhe's patch get into your testing tree? It looks like it > could be a good addition to bcache. No. This patch just reduce the early gc action to make IO faster, and accumulates a large gc action finally to cause more lower I/O period. The later larger gc may cause longer unpredictable time I/O stuck, which doesn’t follow current bcache behavior. It may be helpful for some I/O workloads, but for continuous heavy I/O loads, it won’t help too much. Coly Li