Bcache btree cache size bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I believe I have found a bug in bcache where the btree grows out of
control and makes operations like garbage collection take a very large
amount of time affecting client IO. I can see periodic periods where
bcache devices stop responding to client IO and the cache device starts
doing a lage amount of reads. In order to test the above I triggered gc
manually using 'echo 1 > trigger_gc' and observing the cache set. Once
again a large amount of reads start happening on the cache device and
all the bcache devices of that cache set stop responding. I believe
this is becouse gc blocks all client IO while its happening (might be
wrong). Checking the stats I can see that the
'btree_gc_average_duration_ms'  is almost 2 minutes
(btree_gc_average_duration_ms) which seems excessively large to me.
Furthermore doing something like checking bset_tree_stats will just
hang and cause a similar performance impact. 

An interesting thing to note is that after garbage collection the
number of btree nodes is lower but the btree cache actually grows in
size.

Example:
/sys/fs/bcache/c_set# cat btree_cache_size 
5.2G
/sys/fs/bcache/c_set# cat internal/btree_nodes 
28318
/sys/fs/bcache/c_set# cat average_key_size 
25.2k

Just for reference I have a similar environment (which is busier and
has more data stored) which doesnt experience this issue and the
numbers for the above are:
/sys/fs/bcache/c_set# cat btree_cache_size 
840.5M
/sys/fs/bcache/c_set# cat internal/btree_nodes 
3827
/sys/fs/bcache/c_set# cat average_key_size 
88.3k

Kernel version: 5.4.0-122-generic
OS version: Ubuntu 18.04.6 LTS
bcache-tools package: 1.0.8-2ubuntu0.18.04.1

I am able to provide more info if needed
Regards




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux