mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Coly Li <colyli@suse.de>
To: Dongdong Tao <dongdong.tao@canonical.com>
Cc: Kent Overstreet <kent.overstreet@gmail.com>,
	"open list:BCACHE (BLOCK LAYER CACHE)"
	<linux-bcache@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>,
	Gavin Guo <gavin.guo@canonical.com>,
	Gerald Yang <gerald.yang@canonical.com>,
	Trent Lloyd <trent.lloyd@canonical.com>,
	Dominique Poulain <dominique.poulain@canonical.com>,
	Dongsheng Yang <dongsheng.yang@easystack.cn>
Subject: Re: [PATCH] bcache: consider the fragmentation when update the writeback rate
Date: Thu, 14 Jan 2021 18:05:41 +0800	[thread overview]
Message-ID: <392abd73-c58a-0a34-bd21-1e9adfffc870@suse.de> (raw)
In-Reply-To: <CAJS8hVJDaREvpvG4iO+Xs-KQXQKFi7=k29TrG=NXqjyiPpUCZA@mail.gmail.com>

On 1/14/21 12:45 PM, Dongdong Tao wrote:
> Hi Coly,
> 
> I've got the testing data for multiple threads with larger IO depth.
> 

Hi Dongdong,

Thanks for the testing number.

> *Here is the testing steps:
> *1. make-bcache -B <> -C <> --writeback
> 
> 2. Open two tabs, start different fio task in them at the same time.
> Tab1 run below fio command:
> sudo fio --name=random-writers --filename=/dev/bcache0 --ioengine=libaio
> --iodepth=32 --rw=randrw --blocksize=64k,8k  --direct=1 --runtime=24000
> 
> Tab2 run below fio command:
> sudo fio --name=random-writers2 --filename=/dev/bcache0
> --ioengine=libaio --iodepth=8 --rw=randwrite --bs=4k --rate_iops=150
> --direct=1 --write_lat_log=rw --log_avg_msec=20
> 


Why you limit the iodep to 8 and iops to 150 on cache device?
For cache device the limitation is small. Iosp 150 with 4KB block size,
it means every hour writing (150*4*60*60=2160000KB=) 2GB data. For 35
hours it is only 70GB.


What if the iodeps is 128 or 64, and no iops rate limitation ?


> Note
> - Tab1 fio will run for 24000 seconds, which is the one to cause the
> fragmentation and made the cache_available_percent drops to under 40.
> - Tab2 fio is the one that I'm capturing the latency and I have let it
> run for about 35 hours, which is long enough to allow the
> cache_available_percent drops under 30.
> - This testing method utilized fio benchmark with larger read block
> size/small write block size to cause the high fragmentation, However in
> a real production env, there could be
>    various reasons or a combination of various reasons to cause the high
> fragmentation,  but I believe it should be ok to use any method to cause
> the fragmentation to verify if
>    bcache with this patch is responding better than the master in this
> situation. 
> 
> *Below is the testing result:*
> 
> The total run time is about 35 hours, the latency points in the charts
> for each run are 1.5 million
> 
> Master:
> fio-lat-mater.png
> 
> Master + patch:
> fio-lat-patch.png
> Combine them together:
> fio-lat-mix.png
> 
> Now we can see the master is even worse when we increase the iodepth,
> which makes sense since the backing HDD is being stressed more hardly.
> 
> *Below are the cache stats changing during the run:*
> Master:
> bcache-stats-master.png
> 
> Master + the patch:
> bcache-stats-patch.png
> 
> That's all the testing done with 400GB NVME with 512B block size.
> 
> Coly, do you want me to continue the same testing on 1TB nvme with
> different block size ?
> or is it ok to skip the 1TB testing and continue the test with 400GB
> NVME but with different block size? 
> feel free to let me know any other test scenarios that we should cover
> here. 

Yes please, more testing is desired for performance improvement. So far
I don't see performance number for real high work load yet.

Thanks.

Coly Li


  parent reply	other threads:[~2021-01-14 10:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-05  3:06 Dongdong Tao
     [not found] ` <CAJS8hVK-ZCxJt=E3hwR0hmqPYL1T07_WC_nerb-dZodO+DqtDA@mail.gmail.com>
2021-01-05  4:33   ` Coly Li
     [not found]     ` <CAJS8hVL2B=RZr8H4jFbz=bX9k_E9ur7kTeue6BJwzm4pwv1+qQ@mail.gmail.com>
2021-01-08  4:05       ` Coly Li
2021-01-08  8:30         ` Dongdong Tao
2021-01-08  8:39           ` Coly Li
2021-01-08  8:47             ` Dongdong Tao
2021-01-14  4:55               ` Dongdong Tao
     [not found]               ` <CAJS8hVJDaREvpvG4iO+Xs-KQXQKFi7=k29TrG=NXqjyiPpUCZA@mail.gmail.com>
2021-01-14 10:05                 ` Coly Li [this message]
2021-01-14 12:22                   ` Dongdong Tao
2021-01-14 13:31                     ` Coly Li
2021-01-14 15:35                       ` Dongdong Tao
2021-01-17  7:11 ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-01-19 12:56 Dongdong Tao
2021-01-19 14:06 ` Coly Li
2020-11-03 12:42 Dongdong Tao
2020-11-04  5:06 ` kernel test robot
2020-11-05 16:32 ` Coly Li
2020-11-10  4:19   ` Dongdong Tao
2020-11-11  8:33     ` Coly Li
2020-12-09  2:27 ` Dongsheng Yang
2020-12-09  4:48   ` Dongdong Tao
2020-12-09  7:49     ` Dongsheng Yang
     [not found]       ` <CAJS8hVLMUS1mdrwC8ovzvMO+HWf4xtXRCNJEghtbtW0g93Kh_g@mail.gmail.com>
2020-12-14 17:07         ` Coly Li
     [not found]           ` <CAJS8hVKMjec1cpe_zoeZAJrfY0Pq9bJ51eO6E+g8pgN9jV3Nmw@mail.gmail.com>
2020-12-21  8:08             ` Coly Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=392abd73-c58a-0a34-bd21-1e9adfffc870@suse.de \
    --to=colyli@suse.de \
    --cc=dominique.poulain@canonical.com \
    --cc=dongdong.tao@canonical.com \
    --cc=dongsheng.yang@easystack.cn \
    --cc=gavin.guo@canonical.com \
    --cc=gerald.yang@canonical.com \
    --cc=kent.overstreet@gmail.com \
    --cc=linux-bcache@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=trent.lloyd@canonical.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®