All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wu Fengguang <fengguang.wu@intel.com>
To: Ronald Moesbergen <intercommit@gmail.com>
Cc: Vladislav Bolkhovitin <vst@vlnb.net>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"kosaki.motohiro@jp.fujitsu.com" <kosaki.motohiro@jp.fujitsu.com>,
	"Alan.Brunelle@hp.com" <Alan.Brunelle@hp.com>,
	"hifumi.hisashi@oss.ntt.co.jp" <hifumi.hisashi@oss.ntt.co.jp>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"jens.axboe@oracle.com" <jens.axboe@oracle.com>,
	"randy.dunlap@oracle.com" <randy.dunlap@oracle.com>,
	Bart Van Assche <bart.vanassche@gmail.com>
Subject: Re: [RESEND] [PATCH] readahead:add blk_run_backing_dev
Date: Mon, 13 Jul 2009 20:36:21 +0800	[thread overview]
Message-ID: <20090713123621.GA31051@localhost> (raw)
In-Reply-To: <a0272b440907130512y60a757afqd5629f4ca3ac8e1b@mail.gmail.com>

On Mon, Jul 13, 2009 at 08:12:14PM +0800, Ronald Moesbergen wrote:
> 2009/7/10 Vladislav Bolkhovitin <vst@vlnb.net>:
> >
> > Vladislav Bolkhovitin, on 07/10/2009 12:43 PM wrote:
> >>
> >> Ronald Moesbergen, on 07/10/2009 10:32 AM wrote:
> >>>>
> >>>> I've also long ago noticed that reading data from block devices is
> >>>> slower
> >>>> than from files from mounted on those block devices file systems. Can
> >>>> anybody explain it?
> >>>>
> >>>> Looks like this is strangeness #2 which we uncovered in our tests (the
> >>>> first
> >>>> one was earlier in this thread why the context RA doesn't work with
> >>>> cooperative I/O threads as good as it should).
> >>>>
> >>>> Can you rerun the same 11 tests over a file on the file system, please?
> >>>
> >>> I'll see what I can do. Just te be sure: you want me to run
> >>> blockdev-perftest on a file on the OCFS2 filesystem which is mounted
> >>> on the client over iScsi, right?
> >>
> >> Yes, please.
> >
> > Forgot to mention that you should also configure your backend storage as a
> > big file on a file system (preferably, XFS) too, not as direct device, like
> > /dev/vg/db-master.
> 
> Ok, here are the results:
 
Ronald, thanks for the numbers!

> client kernel: 2.6.26-15lenny3 (debian)
> server kernel: 2.6.29.5 with readahead patch

Do you mean the context readahead patch?

> Test done with XFS on both the target and the initiator. This confirms
> your findings, using files instead of block devices is faster, but
> only when using the io_context patch.

It shows that the one really matters is the io_context patch,
even when context readahead is running. I guess what happened
in the tests are:
- without readahead (or readahead algorithm failed to do proper
  sequential readaheads), the SCST processes will be submitting
  small but close to each other IOs.  CFQ relies on the io_context
  patch to prevent unnecessary idling.
- with proper readahead, the SCST processes will also be submitting
  close readahead IOs. For example, one file's 100-102MB pages is
  readahead by process A, while its 102-104MB pages may be
  readahead by process B. In this case CFQ will also idle waiting
  for process A to submit the next IO, but in fact that IO is being
  submitted by process B. So the io_context patch is still necessary
  even when context readahead is working fine. I guess context
  readahead do have the added value of possibly enlarging the IO size
  (however this benchmark seems to not very sensitive to IO size).

Thanks,
Fengguang

> Without io_context patch:
> 1) client: default, server: default
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  18.327   18.327   17.740   56.491    0.872    0.883
>  33554432  18.662   18.311   18.116   55.772    0.683    1.743
>  16777216  18.900   18.421   18.312   55.229    0.754    3.452
>   8388608  18.893   18.533   18.281   55.156    0.743    6.895
>   4194304  18.512   18.097   18.400   55.850    0.536   13.963
>   2097152  18.635   18.313   18.676   55.232    0.486   27.616
>   1048576  18.441   18.264   18.245   55.907    0.267   55.907
>    524288  17.773   18.669   18.459   55.980    1.184  111.960
>    262144  18.580   18.758   17.483   56.091    1.767  224.365
>    131072  17.224   18.333   18.765   56.626    2.067  453.006
>     65536  18.082   19.223   18.238   55.348    1.483  885.567
>     32768  17.719   18.293   18.198   56.680    0.795 1813.766
>     16384  17.872   18.322   17.537   57.192    1.024 3660.273
> 
> 2) client: default, server: 64 max_sectors_kb, RA default
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  18.738   18.435   18.400   55.283    0.451    0.864
>  33554432  18.046   18.167   17.572   57.128    0.826    1.785
>  16777216  18.504   18.203   18.377   55.771    0.376    3.486
>   8388608  22.069   18.554   17.825   53.013    4.766    6.627
>   4194304  19.211   18.136   18.083   55.465    1.529   13.866
>   2097152  18.647   17.851   18.511   55.866    1.071   27.933
>   1048576  19.084   18.177   18.194   55.425    1.249   55.425
>    524288  18.999   18.553   18.380   54.934    0.763  109.868
>    262144  18.867   18.273   18.063   55.668    1.020  222.673
>    131072  17.846   18.966   18.193   55.885    1.412  447.081
>     65536  18.195   18.616   18.482   55.564    0.530  889.023
>     32768  17.882   18.841   17.707   56.481    1.525 1807.394
>     16384  17.073   18.278   17.985   57.646    1.689 3689.369
> 
> 3) client: default, server: default max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  18.658   17.830   19.258   55.162    1.750    0.862
>  33554432  17.193   18.265   18.517   56.974    1.854    1.780
>  16777216  17.531   17.681   18.776   56.955    1.720    3.560
>   8388608  18.234   17.547   18.201   56.926    1.014    7.116
>   4194304  18.057   17.923   17.901   57.015    0.218   14.254
>   2097152  18.565   17.739   17.658   56.958    1.277   28.479
>   1048576  18.393   17.433   17.314   57.851    1.550   57.851
>    524288  18.939   17.835   18.972   55.152    1.600  110.304
>    262144  18.562   19.005   18.069   55.240    1.141  220.959
>    131072  19.574   17.562   18.251   55.576    2.476  444.611
>     65536  19.117   18.019   17.886   55.882    1.647  894.115
>     32768  18.237   17.415   17.482   57.842    1.200 1850.933
>     16384  17.760   18.444   18.055   56.631    0.876 3624.391
> 
> 4) client: default, server: 64 max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  18.368   17.495   18.524   56.520    1.434    0.883
>  33554432  18.209   17.523   19.146   56.052    2.027    1.752
>  16777216  18.765   18.053   18.550   55.497    0.903    3.469
>   8388608  17.878   17.848   18.389   56.778    0.774    7.097
>   4194304  18.058   17.683   18.567   56.589    1.129   14.147
>   2097152  18.896   18.384   18.697   54.888    0.623   27.444
>   1048576  18.505   17.769   17.804   56.826    1.055   56.826
>    524288  18.319   17.689   17.941   56.955    0.816  113.910
>    262144  19.227   17.770   18.212   55.704    1.821  222.815
>    131072  18.738   18.227   17.869   56.044    1.090  448.354
>     65536  19.319   18.525   18.084   54.969    1.494  879.504
>     32768  18.321   17.672   17.870   57.047    0.856 1825.495
>     16384  18.249   17.495   18.146   57.025    1.073 3649.582
> 
> With io_context patch:
> 5) client: default, server: default
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  12.393   11.925   12.627   83.196    1.989    1.300
>  33554432  11.844   11.855   12.191   85.610    1.142    2.675
>  16777216  12.729   12.602   12.068   82.187    1.913    5.137
>   8388608  12.245   12.060   14.081   80.419    5.469   10.052
>   4194304  13.224   11.866   12.110   82.763    3.833   20.691
>   2097152  11.585   12.584   11.755   85.623    3.052   42.811
>   1048576  12.166   12.144   12.321   83.867    0.539   83.867
>    524288  12.019   12.148   12.160   84.568    0.448  169.137
>    262144  12.014   12.378   12.074   84.259    1.095  337.036
>    131072  11.840   12.068   11.849   85.921    0.756  687.369
>     65536  12.098   11.803   12.312   84.857    1.470 1357.720
>     32768  11.852   12.635   11.887   84.529    2.465 2704.931
>     16384  12.443   13.110   11.881   82.197    3.299 5260.620
> 
> 6) client: default, server: 64 max_sectors_kb, RA default
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  13.033   12.122   11.950   82.911    3.110    1.295
>  33554432  12.386   13.357   12.082   81.364    3.429    2.543
>  16777216  12.102   11.542   12.053   86.096    1.860    5.381
>   8388608  12.240   11.740   11.789   85.917    1.601   10.740
>   4194304  11.824   12.388   12.042   84.768    1.621   21.192
>   2097152  11.962   12.283   11.973   84.832    1.036   42.416
>   1048576  12.639   11.863   12.010   84.197    2.290   84.197
>    524288  11.809   12.919   11.853   84.121    3.439  168.243
>    262144  12.105   12.649   12.779   81.894    1.940  327.577
>    131072  12.441   12.769   12.713   81.017    0.923  648.137
>     65536  12.490   13.308   12.440   80.414    2.457 1286.630
>     32768  13.235   11.917   12.300   82.184    3.576 2629.883
>     16384  12.335   12.394   12.201   83.187    0.549 5323.990
> 
> 7) client: default, server: default max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  12.017   12.334   12.151   84.168    0.897    1.315
>  33554432  12.265   12.200   11.976   84.310    0.864    2.635
>  16777216  12.356   11.972   12.292   83.903    1.165    5.244
>   8388608  12.247   12.368   11.769   84.472    1.825   10.559
>   4194304  11.888   11.974   12.144   85.325    0.754   21.331
>   2097152  12.433   10.938   11.669   87.911    4.595   43.956
>   1048576  11.748   12.271   12.498   84.180    2.196   84.180
>    524288  11.726   11.681   12.322   86.031    2.075  172.062
>    262144  12.593   12.263   11.939   83.530    1.817  334.119
>    131072  11.874   12.265   12.441   84.012    1.648  672.093
>     65536  12.119   11.848   12.037   85.330    0.809 1365.277
>     32768  12.549   12.080   12.008   83.882    1.625 2684.238
>     16384  12.369   12.087   12.589   82.949    1.385 5308.766
> 
> 8) client: default, server: 64 max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  12.664   11.793   11.963   84.428    2.575    1.319
>  33554432  11.825   12.074   12.442   84.571    1.761    2.643
>  16777216  11.997   11.952   10.905   88.311    3.958    5.519
>   8388608  11.866   12.270   11.796   85.519    1.476   10.690
>   4194304  11.754   12.095   12.539   84.483    2.230   21.121
>   2097152  11.948   11.633   11.886   86.628    1.007   43.314
>   1048576  12.029   12.519   11.701   84.811    2.345   84.811
>    524288  11.928   12.011   12.049   85.363    0.361  170.726
>    262144  12.559   11.827   11.729   85.140    2.566  340.558
>    131072  12.015   12.356   11.587   85.494    2.253  683.952
>     65536  11.741   12.113   11.931   85.861    1.093 1373.770
>     32768  12.655   11.738   12.237   83.945    2.589 2686.246
>     16384  11.928   12.423   11.875   84.834    1.711 5429.381
> 
> 9) client: 64 max_sectors_kb, default RA. server: 64 max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  13.570   13.491   14.299   74.326    1.927    1.161
>  33554432  13.238   13.198   13.255   77.398    0.142    2.419
>  16777216  13.851   13.199   13.463   75.857    1.497    4.741
>   8388608  13.339   16.695   13.551   71.223    7.010    8.903
>   4194304  13.689   13.173   14.258   74.787    2.415   18.697
>   2097152  13.518   13.543   13.894   75.021    0.934   37.510
>   1048576  14.119   14.030   13.820   73.202    0.659   73.202
>    524288  13.747   14.781   13.820   72.621    2.369  145.243
>    262144  14.168   13.652   14.165   73.189    1.284  292.757
>    131072  14.112   13.868   14.213   72.817    0.753  582.535
>     65536  14.604   13.762   13.725   73.045    2.071 1168.728
>     32768  14.796   15.356   14.486   68.861    1.653 2203.564
>     16384  13.079   13.525   13.427   76.757    1.111 4912.426
> 
> 10) client: default max_sectors_kb, 2MB RA. server: 64 max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  20.372   18.077   17.262   55.411    3.800    0.866
>  33554432  17.287   17.620   17.828   58.263    0.740    1.821
>  16777216  16.802   18.154   17.315   58.831    1.865    3.677
>   8388608  17.510   18.291   17.253   57.939    1.427    7.242
>   4194304  17.059   17.706   17.352   58.958    0.897   14.740
>   2097152  17.252   18.064   17.615   58.059    1.090   29.029
>   1048576  17.082   17.373   17.688   58.927    0.838   58.927
>    524288  17.129   17.271   17.583   59.103    0.644  118.206
>    262144  17.411   17.695   18.048   57.808    0.848  231.231
>    131072  17.937   17.704   18.681   56.581    1.285  452.649
>     65536  17.927   17.465   17.907   57.646    0.698  922.338
>     32768  18.494   17.820   17.719   56.875    1.073 1819.985
>     16384  18.800   17.759   17.575   56.798    1.666 3635.058
> 
> 11) client: 64 max_sectors_kb, 2MB. RA server: 64 max_sectors_kb, RA 2MB
> blocksize       R        R        R   R(avg,    R(std        R
>   (bytes)     (s)      (s)      (s)    MB/s)   ,MB/s)   (IOPS)
>  67108864  20.045   21.881   20.018   49.680    2.037    0.776
>  33554432  20.768   20.291   20.464   49.938    0.479    1.561
>  16777216  21.563   20.714   20.429   49.017    1.116    3.064
>   8388608  21.290   21.109   21.308   48.221    0.205    6.028
>   4194304  22.240   20.662   21.088   48.054    1.479   12.013
>   2097152  20.282   21.098   20.580   49.593    0.806   24.796
>   1048576  20.367   19.929   20.252   50.741    0.469   50.741
>    524288  20.885   21.203   20.684   48.945    0.498   97.890
>    262144  19.982   21.375   20.798   49.463    1.373  197.853
>    131072  20.744   21.590   19.698   49.593    1.866  396.740
>     65536  21.586   20.953   21.055   48.314    0.627  773.024
>     32768  21.228   20.307   21.049   49.104    0.950 1571.327
>     16384  21.257   21.209   21.150   48.289    0.100 3090.498
> 
> Ronald.

  reply	other threads:[~2009-07-13 12:36 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-29  5:35 [RESEND] [PATCH] readahead:add blk_run_backing_dev Hisashi Hifumi
2009-06-01  0:36 ` Andrew Morton
2009-06-01  1:04   ` Hisashi Hifumi
2009-06-05 15:15     ` Alan D. Brunelle
2009-06-06 14:36       ` KOSAKI Motohiro
2009-06-06 22:45         ` Wu Fengguang
2009-06-18 19:04           ` Andrew Morton
2009-06-20  3:55             ` Wu Fengguang
2009-06-20 12:29               ` Vladislav Bolkhovitin
2009-06-29  9:34                 ` Wu Fengguang
2009-06-29 10:26                   ` Ronald Moesbergen
2009-06-29 10:26                     ` Ronald Moesbergen
2009-06-29 10:55                     ` Vladislav Bolkhovitin
2009-06-29 12:54                       ` Wu Fengguang
2009-06-29 12:58                         ` Bart Van Assche
2009-06-29 13:01                           ` Wu Fengguang
2009-06-29 13:04                         ` Vladislav Bolkhovitin
2009-06-29 13:13                           ` Wu Fengguang
2009-06-29 13:28                             ` Wu Fengguang
2009-06-29 14:43                               ` Ronald Moesbergen
2009-06-29 14:51                                 ` Wu Fengguang
2009-06-29 14:56                                   ` Ronald Moesbergen
2009-06-29 15:37                                   ` Vladislav Bolkhovitin
2009-06-29 14:00                           ` Ronald Moesbergen
2009-06-29 14:21                             ` Wu Fengguang
2009-06-29 15:01                               ` Wu Fengguang
2009-06-29 15:37                                 ` Vladislav Bolkhovitin
     [not found]                                   ` <20090630010414.GB31418@localhost>
2009-06-30 10:54                                     ` Vladislav Bolkhovitin
2009-07-01 13:07                                       ` Ronald Moesbergen
2009-07-01 18:12                                         ` Vladislav Bolkhovitin
2009-07-03  9:14                                       ` Ronald Moesbergen
2009-07-03 10:56                                         ` Vladislav Bolkhovitin
2009-07-03 12:41                                           ` Ronald Moesbergen
2009-07-03 12:46                                             ` Vladislav Bolkhovitin
2009-07-04 15:19                                           ` Ronald Moesbergen
2009-07-06 11:12                                             ` Vladislav Bolkhovitin
2009-07-06 14:37                                               ` Ronald Moesbergen
2009-07-06 14:37                                                 ` Ronald Moesbergen
2009-07-06 17:48                                                 ` Vladislav Bolkhovitin
2009-07-07  6:49                                                   ` Ronald Moesbergen
2009-07-07  6:49                                                     ` Ronald Moesbergen
     [not found]                                                     ` <4A5395FD.2040507@vlnb.net>
     [not found]                                                       ` <a0272b440907080149j3eeeb9bat13f942520db059a8@mail.gmail.com>
2009-07-08 12:40                                                         ` Vladislav Bolkhovitin
2009-07-10  6:32                                                           ` Ronald Moesbergen
2009-07-10  8:43                                                             ` Vladislav Bolkhovitin
2009-07-10  9:27                                                               ` Vladislav Bolkhovitin
2009-07-13 12:12                                                                 ` Ronald Moesbergen
2009-07-13 12:36                                                                   ` Wu Fengguang [this message]
2009-07-13 12:47                                                                     ` Ronald Moesbergen
2009-07-13 12:52                                                                       ` Wu Fengguang
2009-07-14 18:52                                                                     ` Vladislav Bolkhovitin
2009-07-15  7:06                                                                       ` Wu Fengguang
2009-07-14 18:52                                                                   ` Vladislav Bolkhovitin
2009-07-15  6:30                                                                     ` Vladislav Bolkhovitin
2009-07-16  7:32                                                                       ` Ronald Moesbergen
2009-07-16 10:36                                                                         ` Vladislav Bolkhovitin
2009-07-16 14:54                                                                           ` Ronald Moesbergen
2009-07-16 16:03                                                                             ` Vladislav Bolkhovitin
2009-07-17 14:15                                                                           ` Ronald Moesbergen
2009-07-17 18:23                                                                             ` Vladislav Bolkhovitin
2009-07-20  7:20                                                                               ` Vladislav Bolkhovitin
2009-07-22  8:44                                                                                 ` Ronald Moesbergen
2009-07-27 13:11                                                                                   ` Vladislav Bolkhovitin
2009-07-28  9:51                                                                                     ` Ronald Moesbergen
2009-07-28 19:07                                                                                       ` Vladislav Bolkhovitin
2009-07-29 12:48                                                                                         ` Ronald Moesbergen
2009-07-31 18:32                                                                                           ` Vladislav Bolkhovitin
2009-08-03  9:15                                                                                             ` Ronald Moesbergen
2009-08-03  9:20                                                                                               ` Vladislav Bolkhovitin
2009-08-03 11:44                                                                                                 ` Ronald Moesbergen
2009-08-03 11:44                                                                                                   ` Ronald Moesbergen
2009-07-15 20:52                                                           ` Kurt Garloff
2009-07-16 10:38                                                             ` Vladislav Bolkhovitin
2009-06-30 10:22                             ` Vladislav Bolkhovitin
2009-06-29 10:55                   ` Vladislav Bolkhovitin
2009-06-29 13:00                     ` Wu Fengguang
2009-09-22 20:58 ` Andrew Morton
2009-09-22 20:58   ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2009-09-23  1:48 Wu Fengguang
2009-09-23  1:48 ` [RESEND] [PATCH] readahead:add blk_run_backing_dev Wu Fengguang
2009-09-23  1:48 ` (unknown) Wu Fengguang
2009-05-22  0:09 [RESEND][PATCH] readahead:add blk_run_backing_dev Hisashi Hifumi

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=20090713123621.GA31051@localhost \
    --to=fengguang.wu@intel.com \
    --cc=Alan.Brunelle@hp.com \
    --cc=akpm@linux-foundation.org \
    --cc=bart.vanassche@gmail.com \
    --cc=hifumi.hisashi@oss.ntt.co.jp \
    --cc=intercommit@gmail.com \
    --cc=jens.axboe@oracle.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=randy.dunlap@oracle.com \
    --cc=vst@vlnb.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.