Re: reads no longer cached since kernel 4.19

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

 



Sorry for being late to reply. Your bcache is set to "writeback", and
your test is doing reads from a bcache with a still empty cache device;
while the "1GB" file resides initially only on the backing device.

My understanding so far was that in writeback mode only writes will ever
add data to the caching device (first as dirty, and post-writeback as
clean for as long as as space restrictions / usage patterns allow).
Therefore I would not have expected any piece of your "1GB" file to ever
be added to your caching device, and reading it would have to resort to
the backing device, even when repeatedly reading it.

I have seen discussion about caching of readahead requests for newer
kernels, and I thought (but never really checked) this would only
concern read-caching modes. Am I wrong in this assumption?

Matthias


On Wed, Feb 12, 2020 at 07:02:28AM +0100, Postgarage Graz IT wrote:
> On 10.02.20 17:10, Ville Aakko wrote:
> > Hi,
> > 
> > A fellow user responding here.
> > 
> > I've noticed similar behavior and have asked on this same mailing list
> > previously. See:
> > https://www.spinics.net/lists/linux-bcache/msg07859.html
> > 
> > Also seems there are other users with this issue on the Arch Forum,
> > where I have also started a discussion:
> > https://bbs.archlinux.org/viewtopic.php?id=250525
> > There is yet to be a single user to reply there (or on this mailing
> > list) claiming they have a working setup (for caching reads).
> > 
> > Judging from the Arch Linux thread, I have a hunch there were some
> > changes ~4.18, which broke read caching for many (all?) desktop users
> > (as anything which is flagged as readahed will not be cached, despite
> > setting sequential_cutoff). Also (again from the Arch thread) a
> > planned patch might enable expected read caching: "[PATCH 3/5] bcache:
> > add readahead cache policy options via sysfs interface" / see:
> > https://www.spinics.net/lists/linux-bcache/msg08074.html
> 
> Indeed that patch works.
> Now I'm using the 5.6-rc1 kernel and the performance gain is huge.
> 
> I only wonder, why the used cache number doesn't go up anymore like it
> did for pre-4.19 kernels.
> 
> 
> Linux kkb 5.6.0-050600rc1-generic #202002092032 SMP Mon Feb 10 01:36:50
> UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
> 
> --- bcache ---
> Device                      /dev/md0 (9:0)
> UUID                        d4f0e4cd-c2dc-4cec-bf5b-96f1f87ff0b8
> Block Size                  0.50KiB
> Bucket Size                 512.00KiB
> Congested?                  False
> Read Congestion             0.0ms
> Write Congestion            0.0ms
> Total Cache Size            111.79GiB
> Total Cache Used            1.12GiB	(0%)
> Total Cache Unused          110.67GiB	(99%)
> Evictable Cache             111.79GiB	(100%)
> Replacement Policy          [lru] fifo random
> Cache Mode                  writethrough [writeback] writearound none
> Total Hits                  0
> Total Misses                0
> Total Bypass Hits           0
> Total Bypass Misses         0
> Total Bypassed              0B
> 
> 1st pass
> 0.00user 0.60system 0:08.66elapsed 6%CPU (0avgtext+0avgdata
> 2220maxresident)k
> 2097632inputs+0outputs (1major+115minor)pagefaults 0swaps
> 
> 2nd pass
> 0.00user 0.47system 0:03.34elapsed 14%CPU (0avgtext+0avgdata
> 2216maxresident)k
> 2097128inputs+0outputs (1major+113minor)pagefaults 0swaps
> 
> 3rd pass
> 0.00user 0.45system 0:02.58elapsed 17%CPU (0avgtext+0avgdata
> 2096maxresident)k
> 2097296inputs+0outputs (1major+110minor)pagefaults 0swaps
> --- bcache ---
> Device                      /dev/md0 (9:0)
> UUID                        d4f0e4cd-c2dc-4cec-bf5b-96f1f87ff0b8
> Block Size                  0.50KiB
> Bucket Size                 512.00KiB
> Congested?                  False
> Read Congestion             0.0ms
> Write Congestion            0.0ms
> Total Cache Size            111.79GiB
> Total Cache Used            1.12GiB	(0%)
> Total Cache Unused          110.67GiB	(99%)
> Evictable Cache             110.67GiB	(99%)
> Replacement Policy          [lru] fifo random
> Cache Mode                  writethrough [writeback] writearound none
> Total Hits                  6352	(51%)
> Total Misses                6075
> Total Bypass Hits           0
> Total Bypass Misses         0
> 
> 
> As you can see, the reads must come from the SSD in the 2nd and 3rd
> pass, still "Total Cache Used" stays the same.
> 
> 
> > 
> > However this is highly speculative from someone not understanding file
> > systems or insides of bcache or the code at all.
> > 
> > Perhaps someone more involved can reply: is the current behavior
> > expected (reads are not getting cached practically at all). Also, is
> > the patch I've linked possibly going to fix the current issues?
> > 
> > Kind Regards,
> > Ville Aakko
> > 
> > 
> > 
> > su 9. helmik. 2020 klo 23.37 Postgarage Graz IT (it@xxxxxxxxxxxxx) kirjoitti:
> >>
> >> Hello!
> >>
> >> I noticed, that bcache is no longer caching reads on my system which
> >> makes it behave like if there were only hdds.
> >>
> >> I'm using two hdds in a raid 1 as the backing device and a single ssd as
> >> cache device:
> >>
> >> sda             8:0    0 111,8G  0 disk
> >> └─bcache0     252:0    0 921,9G  0 disk  /
> >> sdb             8:16   0 931,5G  0 disk
> >> ├─sdb1          8:17   0   922G  0 part
> >> │ └─md0         9:0    0 921,9G  0 raid1
> >> │   └─bcache0 252:0    0 921,9G  0 disk  /
> >> ├─sdb2          8:18   0     1K  0 part
> >> ├─sdb5          8:21   0   1,9G  0 part
> >> │ └─md1         9:1    0   1,9G  0 raid1 /boot
> >> └─sdb6          8:22   0   7,6G  0 part  [SWAP]
> >> sdc             8:32   0 931,5G  0 disk
> >> ├─sdc1          8:33   0   922G  0 part
> >> │ └─md0         9:0    0 921,9G  0 raid1
> >> │   └─bcache0 252:0    0 921,9G  0 disk  /
> >> ├─sdc2          8:34   0     1K  0 part
> >> ├─sdc5          8:37   0   1,9G  0 part
> >> │ └─md1         9:1    0   1,9G  0 raid1 /boot
> >> └─sdc6          8:38   0   7,6G  0 part  [SWAP]
> >>
> >>
> >> For benchmarking every time I detach the cache device, stop the bcache
> >> device, do a wipefs on the cache device, then make-bcache -C /dev/sda
> >> and finally reattach the cache.
> >> After that, I'm using the following script to repeatedly read a 1gb file:
> >>
> >> #!/bin/sh
> >> echo 0 > /sys/block/bcache0/bcache/sequential_cutoff
> >> echo 0 > /sys/block/bcache0/bcache/cache/congested_read_threshold_us
> >> echo 0 > /sys/block/bcache0/bcache/cache/congested_write_threshold_us
> >> uname -a
> >> echo
> >> bcache-status
> >> echo
> >> echo "1st pass"
> >> sync; echo 3 > /proc/sys/vm/drop_caches
> >> (time cat 1GB.bin > /dev/null)
> >> echo
> >> echo "2nd pass"
> >> sync; echo 3 > /proc/sys/vm/drop_caches
> >> (time cat 1GB.bin > /dev/null)
> >> echo
> >> echo "3rd pass"
> >> sync; echo 3 > /proc/sys/vm/drop_caches
> >> (time cat 1GB.bin > /dev/null)
> >> bcache-status
> >>
> >>
> >>
> >> As you can see from the results below, kernel 4.18.20 is the last
> >> kernel, where the cache grows and the performance goes up.
> >>
> >> I also compiled 4.19.0 with the bcache files from 4.18.20 and much to my
> >> suprise, that didn't change 4.19's behavior - still no caching. So some
> >> other changes must be the culprit or I did something wrong.
> >> I'm not that much into compiling the kernel, but I checked out the
> >> 4.19.0 and 4.18.20 commits and replaced the 4.19.0 drivers/md/bcache
> >> directory with the one from 4.18.20 - then recompiled and installed the
> >> new kernel.
> >>
> >> So i am at my wits end. Any help would be appreciated.
> >> Thanks
> >> Flo
> >>
> >>
> >> Linux kkb 4.18.20-041820-generic #201812030624 SMP Mon Dec 3 11:25:55
> >> UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
> >>
> >> --- bcache ---
> >> Device                      /dev/md0 (9:0)
> >> UUID                        8275bf01-f0b3-423e-87fa-48336ce33068
> >> Block Size                  0.50KiB
> >> Bucket Size                 512.00KiB
> >> Congested?                  False
> >> Read Congestion             0.0ms
> >> Write Congestion            0.0ms
> >> Total Cache Size            111.79GiB
> >> Total Cache Used            1.12GiB     (0%)
> >> Total Cache Unused          110.67GiB   (99%)
> >> Evictable Cache             111.79GiB   (100%)
> >> Replacement Policy          [lru] fifo random
> >> Cache Mode                  writethrough [writeback] writearound none
> >> Total Hits                  0   (0%)
> >> Total Misses                6
> >> Total Bypass Hits           0
> >> Total Bypass Misses         0
> >> Total Bypassed              0B
> >>
> >> 1st pass
> >> 0.00user 0.36system 0:08.58elapsed 4%CPU (0avgtext+0avgdata
> >> 2196maxresident)k
> >> 2097608inputs+0outputs (1major+113minor)pagefaults 0swaps
> >>
> >> 2nd pass
> >> 0.00user 0.32system 0:03.29elapsed 9%CPU (0avgtext+0avgdata
> >> 2100maxresident)k
> >> 2097184inputs+0outputs (1major+110minor)pagefaults 0swaps
> >>
> >> 3rd pass
> >> 0.00user 0.32system 0:02.64elapsed 12%CPU (0avgtext+0avgdata
> >> 2092maxresident)k
> >> 2097280inputs+0outputs (1major+111minor)pagefaults 0swaps
> >> --- bcache ---
> >> Device                      /dev/md0 (9:0)
> >> UUID                        8275bf01-f0b3-423e-87fa-48336ce33068
> >> Block Size                  0.50KiB
> >> Bucket Size                 512.00KiB
> >> Congested?                  False
> >> Read Congestion             0.0ms
> >> Write Congestion            0.0ms
> >> Total Cache Size            111.79GiB
> >> Total Cache Used            2.24GiB     (2%)
> >> Total Cache Unused          109.55GiB   (98%)
> >> Evictable Cache             110.67GiB   (99%)
> >> Replacement Policy          [lru] fifo random
> >> Cache Mode                  writethrough [writeback] writearound none
> >> Total Hits                  5   (0%)
> >> Total Misses                4079
> >> Total Bypass Hits           0   (0%)
> >> Total Bypass Misses         615
> >> Total Bypassed              2.40MiB
> >>
> >>
> >>
> >> Linux kkb 4.19.0-041900-generic #201810221809 SMP Mon Oct 22 22:11:45
> >> UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
> >>
> >> --- bcache ---
> >> Device                      /dev/md0 (9:0)
> >> UUID                        67269654-92e8-4c3b-a524-8e8910082146
> >> Block Size                  0.50KiB
> >> Bucket Size                 512.00KiB
> >> Congested?                  False
> >> Read Congestion             0.0ms
> >> Write Congestion            0.0ms
> >> Total Cache Size            111.79GiB
> >> Total Cache Used            1.12GiB     (0%)
> >> Total Cache Unused          110.67GiB   (99%)
> >> Evictable Cache             111.79GiB   (100%)
> >> Replacement Policy          [lru] fifo random
> >> Cache Mode                  writethrough [writeback] writearound none
> >> Total Hits                  0   (0%)
> >> Total Misses                1
> >> Total Bypass Hits           0
> >> Total Bypass Misses         0
> >> Total Bypassed              0B
> >>
> >> 1st pass
> >> 0.00user 0.33system 0:09.29elapsed 3%CPU (0avgtext+0avgdata
> >> 2280maxresident)k
> >> 2097624inputs+0outputs (1major+113minor)pagefaults 0swaps
> >>
> >> 2nd pass
> >> 0.00user 0.33system 0:08.47elapsed 4%CPU (0avgtext+0avgdata
> >> 2248maxresident)k
> >> 2097280inputs+0outputs (1major+111minor)pagefaults 0swaps
> >>
> >> 3rd pass
> >> 0.00user 0.37system 0:10.46elapsed 3%CPU (0avgtext+0avgdata
> >> 2220maxresident)k
> >> 2097616inputs+0outputs (1major+114minor)pagefaults 0swaps
> >> --- bcache ---
> >> Device                      /dev/md0 (9:0)
> >> UUID                        67269654-92e8-4c3b-a524-8e8910082146
> >> Block Size                  0.50KiB
> >> Bucket Size                 512.00KiB
> >> Congested?                  False
> >> Read Congestion             0.0ms
> >> Write Congestion            0.0ms
> >> Total Cache Size            111.79GiB
> >> Total Cache Used            1.12GiB     (0%)
> >> Total Cache Unused          110.67GiB   (99%)
> >> Evictable Cache             111.79GiB   (100%)
> >> Replacement Policy          [lru] fifo random
> >> Cache Mode                  writethrough [writeback] writearound none
> >> Total Hits                  132 (23%)
> >> Total Misses                436
> >> Total Bypass Hits           51  (0%)
> >> Total Bypass Misses         17399
> >> Total Bypassed              43.50MiB
> >>
> >>
> >>
> >>
> >> Linux kkb 5.5.2-050502-generic #202002041931 SMP Tue Feb 4 19:33:15 UTC
> >> 2020 x86_64 x86_64 x86_64 GNU/Linux
> >>
> >> --- bcache ---
> >> Device                      /dev/md0 (9:0)
> >> UUID                        38a8b675-e332-4076-b0cf-44e4be72c300
> >> Block Size                  0.50KiB
> >> Bucket Size                 512.00KiB
> >> Congested?                  False
> >> Read Congestion             0.0ms
> >> Write Congestion            0.0ms
> >> Total Cache Size            111.79GiB
> >> Total Cache Used            1.12GiB     (0%)
> >> Total Cache Unused          110.67GiB   (99%)
> >> Evictable Cache             111.79GiB   (100%)
> >> Replacement Policy          [lru] fifo random
> >> Cache Mode                  writethrough [writeback] writearound none
> >> Total Hits                  0   (0%)
> >> Total Misses                1
> >> Total Bypass Hits           0   (0%)
> >> Total Bypass Misses         3
> >> Total Bypassed              52.00KiB
> >>
> >> 1st pass
> >> 0.00user 0.42system 0:09.21elapsed 4%CPU (0avgtext+0avgdata
> >> 2216maxresident)k
> >> 2097608inputs+0outputs (1major+112minor)pagefaults 0swaps
> >>
> >> 2nd pass
> >> 0.00user 0.42system 0:09.62elapsed 4%CPU (0avgtext+0avgdata
> >> 2248maxresident)k
> >> 2097280inputs+0outputs (1major+112minor)pagefaults 0swaps
> >>
> >> 3rd pass
> >> 0.00user 0.43system 0:08.75elapsed 5%CPU (0avgtext+0avgdata
> >> 2220maxresident)k
> >> 2097224inputs+0outputs (1major+114minor)pagefaults 0swaps
> >> --- bcache ---
> >> Device                      /dev/md0 (9:0)
> >> UUID                        38a8b675-e332-4076-b0cf-44e4be72c300
> >> Block Size                  0.50KiB
> >> Bucket Size                 512.00KiB
> >> Congested?                  False
> >> Read Congestion             0.0ms
> >> Write Congestion            0.0ms
> >> Total Cache Size            111.79GiB
> >> Total Cache Used            1.12GiB     (0%)
> >> Total Cache Unused          110.67GiB   (99%)
> >> Evictable Cache             111.79GiB   (100%)
> >> Replacement Policy          [lru] fifo random
> >> Cache Mode                  writethrough [writeback] writearound none
> >> Total Hits                  121 (32%)
> >> Total Misses                246
> >> Total Bypass Hits           15  (0%)
> >> Total Bypass Misses         12811
> >> Total Bypassed              39.70MiB
> > 
> > 
> > 
> > --
> > --
> > Ville Aakko - ville.aakko@xxxxxxxxx



[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