[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20200116094653.BF97FA405B@b06wcsmtp001.portsmouth.uk.ibm.com>
Date: Thu, 16 Jan 2020 15:16:52 +0530
From: Ritesh Harjani <riteshh@...ux.ibm.com>
To: "Theodore Y. Ts'o" <tytso@....edu>
Cc: Jan Kara <jack@...e.cz>,
Xiaoguang Wang <xiaoguang.wang@...ux.alibaba.com>,
Ext4 Developers List <linux-ext4@...r.kernel.org>,
joseph.qi@...ux.alibaba.com, Liu Bo <bo.liu@...ux.alibaba.com>
Subject: Re: Discussion: is it time to remove dioread_nolock?
Hello Ted,
On 1/15/20 10:18 PM, Theodore Y. Ts'o wrote:
> On Wed, Jan 15, 2020 at 05:00:53AM +0530, Ritesh Harjani wrote:
>>
>> I too collected some performance numbers on my x86 box with
>> --direct=1, bs=4K/1M & ioengine=libaio, with default opt v/s dioread_nolock
>> opt on latest ext4 git tree.
>>
>> I found the delta to be within +/- 6% in all of the runs which includes, seq
>> read, mixed rw & mixed randrw.
>
> Thanks for taking the performance measurements!
>
> Are you able to release more detail of what the deltas were for those
> tests? And how stable were those results across repeated runs?
>
I have collected these numbers using fio. All of the column values
shown in the attachment & pasted below are average of 3 runs.
I checked all those individual runs too and saw that even in the run-to-
run variations the delta was within +/- 5% only.
The naming of those individual runs *.json files are a bit weird and
will take sometime if I have to publish the individual runs. But do let
me know if that as well is required. I can make some changes in the
scripts to print individual run's numbers too.
I have pasted the individual fio files too which I used for my testing.
I have used libaio as ioengine (with iodepth=16) in the SeqRead case and
psync in others.
Performance numbers:
===================
(seq) read (4K) - libaio
============
threads default_opt_read(MB/s) dioread_nolock_opt_read(MB/s)
---------- --------------------- ----------------------------
1 138.928059895833 138.824869791667
8 129.345052083333 124.472005208333
24 71.6555989583333 72.275390625
(Not sure why 24 thread case has lower perf numbers, but on increasing
the iodepth=32, I could see an increase in bw with 24 threads case
too.)
(seq) read (1M) - libaio
===========
threads default_opt_read(MB/s) dioread_nolock_opt_read(MB/s)
---------- --------------------- ---------------
1 138.905598958333 138.832682291667
8 111.263997395833 109.301106770833
24 121.895182291667 127.75390625
randrw(4K) - read (psync)
==========================
threads default_opt_read [KB/s] dioread_opt_read [KB/s]
---------- ---------------- ----------------
1 414.666666666667 410.0
8 780.0 792.333333333333
24 967.333333333333 991.666666666667
randrw(4K) - write (psync)
===========================
threads default_opt_write [KB/s] dioread_opt_write [KB/s]
---------- ----------------- -----------------
1 418.0 413.666666666667
8 796.666666666667 809.666666666667
24 981.333333333333 1007.66666666667
randrw(1M) - read (psync)
=================
threads default_opt_read(MB/s) dioread_nolock_opt_read(MB/s)
---------- ----------------- -----------------------
1 39.5693359375 39.7288411458333
8 44.5179036458333 47.9098307291667
24 50.2861328125 51.720703125
randrw(1M) - write (psync)
==================
threads default_opt_write(MB/s) dioread_nolock_opt_write(MB/s)
---------- ---------------------- -----------------------
1 41.4583333333333 41.5068359375
8 46.0768229166667 49.568359375
24 49.5947265625 50.7083333333333
rw(1M) - read (psync)
=============
threads default_opt_read(MB/s) dioread_nolock_opt_read(MB/s)
---------- ---------------------- -------------------
1 43.6458333333333 43.6770833333333
8 48.1178385416667 49.2718098958333
24 50.5703125 53.7890625
rw(1M) - write (psync)
==============
threads default_opt_write(MB/s) dioread_nolock_opt_write(MB/s)
---------- ----------------------- ------------------
1 45.5065104166667 45.5654296875
8 49.7431640625 51.0690104166667
24 50.2493489583333 53.3463541666667
FIO FILES
=========
dio_read.fio
============
[global]
ioengine=libaio
rw=read
runtime=60
iodepth=16
direct=1
size=10G
filename=./testfile
group_reporting=1
thread=1
;bs=$bs
;numjobs=24
[fio-run]
dio_randrw.fio
==============
[global]
ioengine=psync
rw=randrw
runtime=60
iodepth=1
direct=1
size=10G
filename=./testfile
group_reporting=1
thread=1
;bs=$bs
;numjobs=24
[fio-run]
dio_rw.fio
==========
[global]
ioengine=psync
rw=rw
runtime=60
iodepth=1
direct=1
size=10G
filename=./testfile
group_reporting=1
thread=1
;bs=$bs
;numjobs=24
[fio-run]
Thanks
-ritesh
View attachment "datafile.txt" of type "text/plain" (3311 bytes)
Powered by blists - more mailing lists