public inbox for linux-bcache@vger.kernel.org
 help / color / mirror / Atom feed
From: Kent Overstreet <kent.overstreet@gmail.com>
To: Eric Wheeler <bcache@lists.ewheeler.net>
Cc: "Marcin Mirosław" <marcin@mejor.pl>, linux-bcache@vger.kernel.org
Subject: Re: Testing bcachefs - beginners questions
Date: Thu, 17 Mar 2016 20:15:51 -0800	[thread overview]
Message-ID: <20160318041551.GA7889@kmo-pixel> (raw)
In-Reply-To: <alpine.LRH.2.11.1603161917400.19675@mail.ewheeler.net>

On Wed, Mar 16, 2016 at 07:26:42PM +0000, Eric Wheeler wrote:
> 
> On Wed, 16 Mar 2016, Marcin Mirosław wrote:
> 
> > Hello!
> > 
> > I'd like to try to use and test how bcachefs works. I've found page
> > https://lkml.org/lkml/2015/8/21/22 where are described working and
> > planned features. What changed since mentioned email? Do I see correctly
> > that web page with documentation is rather outdated?
> > How can I check bcachefs without using all kernel from
> > https://evilpiepirate.org/git/linux-bcache.git ? Is it enough to copy
> > directory drivers/md/bcache to currently used kernel sources and compile
> > or I've to use kernel from mentioned git repo?
> 
> I think you want this branch:
> 
> https://evilpiepirate.org/git/linux-bcache.git/log/?h=bcache-dev
> 
> It looks like Kent's tree is up to date (4.5.0) so you could use it 
> directly.  I wouldn't copy directory trees around to a different kernel 
> unless you are ready for some backporting work.  Perhaps bcachefs can be 
> backported to earlier stable kernels when Kent is ready to call it stable.  
> 
> He was working on endianness compatability last I heard.  It would be neat 
> to hear some feedback on its status, maybe benchmarks against btrfs/zfs, 
> too.

Endianness compatibility is done. There's been a _ton_ of fixes and improvements
since the announcement. I'm gonna have to write some more documentation and do
another announcement soon.

One thing to note if you're running benchmarks is that data checksumming is on
by default - it doesn't hurt most stuff noticably, but small random reads where
your read size is smaller than the checksum granularity (typically the size of
the writes you issued) will suck because it'll have to bounce and read the
entire chunk of data the checksum covered.

Benchmark wise, here's a dio append benchmark I ran the other day:

Summary:
bcachefs:       1749.1 MB/s
ext4:           513.6 MB/s
xfs:            515.7 MB/s
btrfs:          531.2 MB/s

******** Running benchmark /root/benches/dio-appends.sh

******** bcache:
dio-append: (g=0): rw=write, bs=4K-256K/4K-256K/4K-256K, ioengine=libaio, iodepth=1
...
fio-2.6
Starting 64 processes

dio-append: (groupid=0, jobs=64): err= 0: pid=3832: Mon Mar  7 19:54:34 2016
  write: io=32761MB, bw=1749.1MB/s, iops=14317, runt= 18721msec
    slat (usec): min=33, max=99502, avg=4453.08, stdev=2949.39
    clat (usec): min=0, max=339, avg= 1.55, stdev= 2.01
     lat (usec): min=34, max=99504, avg=4456.19, stdev=2949.56
    clat percentiles (usec):
     |  1.00th=[    1],  5.00th=[    1], 10.00th=[    1], 20.00th=[    1],
     | 30.00th=[    1], 40.00th=[    1], 50.00th=[    1], 60.00th=[    2],
     | 70.00th=[    2], 80.00th=[    2], 90.00th=[    2], 95.00th=[    2],
     | 99.00th=[    3], 99.50th=[    4], 99.90th=[   11], 99.95th=[   30],
     | 99.99th=[   96]
    bw (KB  /s): min=21833, max=32670, per=1.57%, avg=28048.70, stdev=1457.81
    lat (usec) : 2=54.76%, 4=44.52%, 10=0.57%, 20=0.08%, 50=0.03%
    lat (usec) : 100=0.03%, 250=0.01%, 500=0.01%
  cpu          : usr=0.34%, sys=1.72%, ctx=598702, majf=0, minf=880
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=268032/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: io=32761MB, aggrb=1749.1MB/s, minb=1749.1MB/s, maxb=1749.1MB/s, mint=18721msec, maxt=18721msec

Disk stats (read/write):
  rssda: ios=17/582983, merge=0/105212, ticks=10/1548520, in_queue=1550910, util=97.94%

******** ext4:
dio-append: (g=0): rw=write, bs=4K-256K/4K-256K/4K-256K, ioengine=libaio, iodepth=1
...
fio-2.6
Starting 64 processes

dio-append: (groupid=0, jobs=64): err= 0: pid=3918: Mon Mar  7 19:55:39 2016
  write: io=32761MB, bw=525943KB/s, iops=4202, runt= 63785msec
    slat (usec): min=61, max=60044, avg=15209.43, stdev=5451.60
    clat (usec): min=0, max=87, avg= 0.83, stdev= 0.58
     lat (usec): min=62, max=60046, avg=15210.80, stdev=5451.62
    clat percentiles (usec):
     |  1.00th=[    0],  5.00th=[    0], 10.00th=[    0], 20.00th=[    1],
     | 30.00th=[    1], 40.00th=[    1], 50.00th=[    1], 60.00th=[    1],
     | 70.00th=[    1], 80.00th=[    1], 90.00th=[    1], 95.00th=[    1],
     | 99.00th=[    2], 99.50th=[    2], 99.90th=[    8], 99.95th=[    8],
     | 99.99th=[   11]
    bw (KB  /s): min= 5299, max=10240, per=1.56%, avg=8228.68, stdev=565.95
    lat (usec) : 2=98.66%, 4=1.12%, 10=0.20%, 20=0.01%, 50=0.01%
    lat (usec) : 100=0.01%
  cpu          : usr=0.06%, sys=0.11%, ctx=273881, majf=0, minf=754
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=268032/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: io=32761MB, aggrb=525942KB/s, minb=525942KB/s, maxb=525942KB/s, mint=63785msec, maxt=63785msec

Disk stats (read/write):
  rssda: ios=206/403691, merge=0/1246, ticks=3100/6279220, in_queue=6284330, util=99.88%

******** xfs:
dio-append: (g=0): rw=write, bs=4K-256K/4K-256K/4K-256K, ioengine=libaio, iodepth=1
...
fio-2.6
Starting 64 processes

dio-append: (groupid=0, jobs=64): err= 0: pid=4005: Mon Mar  7 19:56:43 2016
  write: io=32761MB, bw=528170KB/s, iops=4219, runt= 63516msec
    slat (usec): min=12, max=398, avg=48.88, stdev=14.56
    clat (usec): min=40, max=54468, avg=15107.79, stdev=6083.06
     lat (usec): min=76, max=54553, avg=15156.94, stdev=6086.18
    clat percentiles (usec):
     |  1.00th=[ 2544],  5.00th=[ 4704], 10.00th=[ 6816], 20.00th=[ 9792],
     | 30.00th=[11712], 40.00th=[13504], 50.00th=[15168], 60.00th=[16768],
     | 70.00th=[18560], 80.00th=[20352], 90.00th=[23168], 95.00th=[24704],
     | 99.00th=[28288], 99.50th=[30592], 99.90th=[35072], 99.95th=[36096],
     | 99.99th=[42752]
    bw (KB  /s): min= 6166, max=10827, per=1.56%, avg=8264.22, stdev=490.87
    lat (usec) : 50=0.01%, 100=0.01%, 250=0.01%, 500=0.01%, 750=0.01%
    lat (usec) : 1000=0.03%
    lat (msec) : 2=0.40%, 4=3.24%, 10=17.37%, 20=56.64%, 50=22.31%
    lat (msec) : 100=0.01%
  cpu          : usr=0.08%, sys=0.34%, ctx=270879, majf=0, minf=776
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=268032/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: io=32761MB, aggrb=528170KB/s, minb=528170KB/s, maxb=528170KB/s, mint=63516msec, maxt=63516msec

Disk stats (read/write):
  rssda: ios=64/400943, merge=0/269, ticks=860/6368640, in_queue=6380330, util=99.94%

******** btrfs:
dio-append: (g=0): rw=write, bs=4K-256K/4K-256K/4K-256K, ioengine=libaio, iodepth=1
...
fio-2.6
Starting 64 processes

dio-append: (groupid=0, jobs=64): err= 0: pid=4146: Mon Mar  7 19:57:45 2016
  write: io=32761MB, bw=543980KB/s, iops=4346, runt= 61670msec
    slat (usec): min=104, max=71886, avg=14715.33, stdev=7480.34
    clat (usec): min=0, max=444, avg= 1.21, stdev= 2.34
     lat (usec): min=109, max=71888, avg=14717.45, stdev=7480.33
    clat percentiles (usec):
     |  1.00th=[    0],  5.00th=[    1], 10.00th=[    1], 20.00th=[    1],
     | 30.00th=[    1], 40.00th=[    1], 50.00th=[    1], 60.00th=[    1],
     | 70.00th=[    1], 80.00th=[    1], 90.00th=[    2], 95.00th=[    2],
     | 99.00th=[    2], 99.50th=[    3], 99.90th=[   14], 99.95th=[   23],
     | 99.99th=[   89]
    bw (KB  /s): min= 5235, max=10191, per=1.56%, avg=8511.05, stdev=534.02
    lat (usec) : 2=82.55%, 4=17.04%, 10=0.25%, 20=0.09%, 50=0.05%
    lat (usec) : 100=0.01%, 250=0.01%, 500=0.01%
  cpu          : usr=0.08%, sys=0.29%, ctx=289158, majf=0, minf=834
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=268032/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: io=32761MB, aggrb=543980KB/s, minb=543980KB/s, maxb=543980KB/s, mint=61670msec, maxt=61670msec

  reply	other threads:[~2016-03-18  4:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-16 15:13 Testing bcachefs - beginners questions Marcin Mirosław
2016-03-16 19:26 ` Eric Wheeler
2016-03-18  4:15   ` Kent Overstreet [this message]
2016-03-18  6:55     ` Ming Lin
2016-03-18 19:02     ` Eric Wheeler
2016-03-29 21:10       ` Eric Wheeler

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=20160318041551.GA7889@kmo-pixel \
    --to=kent.overstreet@gmail.com \
    --cc=bcache@lists.ewheeler.net \
    --cc=linux-bcache@vger.kernel.org \
    --cc=marcin@mejor.pl \
    /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