Re: Discussion: is it time to remove dioread_nolock?

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

 



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


SeqRead (4K) - libaio
============
threads     default_opt[read_4K(MB/s)]   dioread_nolock_opt [read_4K(MB/s)]
----------  ---------------------------  ------------------------------
1           138.928059895833             138.824869791667                                    
8           129.345052083333             124.472005208333                                    
24          71.6555989583333             72.275390625   


SeqRead(1M) - libaio
===========
threads     default_opt [read_1M(MB/s)]  dioread_nolock_opt [read_1M(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_1M(MB/s)   dioread_nolock_opt [read_1M(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_1M(MB/s)]  dioread_nolock_opt [write_1M(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_1M(MB/s)]  dioread_nolock_opt [read_1M(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_1M(MB/s)]   dioread_nolock_opt [write_1M(MB/s)
----------  -----------------------------  ---------------------------------
1           45.5065104166667               45.5654296875                                      
8           49.7431640625                  51.0690104166667                                   
24          50.2493489583333               53.3463541666667         


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux