From: Vladislav Bolkhovitin <vst@vlnb.net>
To: Ronald Moesbergen <intercommit@gmail.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>, linux-kernel@vger.kernel.org
Subject: Re: [RESEND] [PATCH] readahead:add blk_run_backing_dev
Date: Fri, 03 Jul 2009 14:56:01 +0400 [thread overview]
Message-ID: <4A4DE3C1.5080307@vlnb.net> (raw)
In-Reply-To: <a0272b440907030214l4016422bxbc98fd003bfe1b3d@mail.gmail.com>
Ronald Moesbergen, on 07/03/2009 01:14 PM wrote:
>>> OK, now I tend to agree on decreasing max_sectors_kb and increasing
>>> read_ahead_kb. But before actually trying to push that idea I'd like
>>> to
>>> - do more benchmarks
>>> - figure out why context readahead didn't help SCST performance
>>> (previous traces show that context readahead is submitting perfect
>>> large io requests, so I wonder if it's some io scheduler bug)
>> Because, as we found out, without your http://lkml.org/lkml/2009/5/21/319
>> patch read-ahead was nearly disabled, hence there were no difference which
>> algorithm was used?
>>
>> Ronald, can you run the following tests, please? This time with 2 hosts,
>> initiator (client) and target (server) connected using 1 Gbps iSCSI. It
>> would be the best if on the client vanilla 2.6.29 will be ran, but any other
>> kernel will be fine as well, only specify which. Blockdev-perftest should be
>> ran as before in buffered mode, i.e. with "-a" switch.
>>
>> 1. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 patch with all default settings.
>>
>> 2. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 patch with default RA size and 64KB
>> max_sectors_kb.
>>
>> 3. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 patch with 2MB RA size and default
>> max_sectors_kb.
>>
>> 4. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 patch with 2MB RA size and 64KB
>> max_sectors_kb.
>>
>> 5. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 patch and with context RA patch. RA size
>> and max_sectors_kb are default. For your convenience I committed the
>> backported context RA patches into the SCST SVN repository.
>>
>> 6. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 and context RA patches with default RA
>> size and 64KB max_sectors_kb.
>>
>> 7. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 and context RA patches with 2MB RA size
>> and default max_sectors_kb.
>>
>> 8. All defaults on the client, on the server vanilla 2.6.29 with Fengguang's
>> http://lkml.org/lkml/2009/5/21/319 and context RA patches with 2MB RA size
>> and 64KB max_sectors_kb.
>>
>> 9. On the client default RA size and 64KB max_sectors_kb. On the server
>> vanilla 2.6.29 with Fengguang's http://lkml.org/lkml/2009/5/21/319 and
>> context RA patches with 2MB RA size and 64KB max_sectors_kb.
>>
>> 10. On the client 2MB RA size and default max_sectors_kb. On the server
>> vanilla 2.6.29 with Fengguang's http://lkml.org/lkml/2009/5/21/319 and
>> context RA patches with 2MB RA size and 64KB max_sectors_kb.
>>
>> 11. On the client 2MB RA size and 64KB max_sectors_kb. On the server vanilla
>> 2.6.29 with Fengguang's http://lkml.org/lkml/2009/5/21/319 and context RA
>> patches with 2MB RA size and 64KB max_sectors_kb.
>
> Ok, done. Performance is pretty bad overall :(
>
> The kernels I used:
> client kernel: 2.6.26-15lenny3 (debian)
> server kernel: 2.6.29.5 with blk_dev_run patch
>
> And I adjusted the blockdev-perftest script to drop caches on both the
> server (via ssh) and the client.
>
> The results:
>
> 1) client: default, server: default
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 19.808 20.078 20.180 51.147 0.402 0.799
> 33554432 19.162 19.952 20.375 51.673 1.322 1.615
> 16777216 19.714 20.331 19.948 51.214 0.649 3.201
> 8388608 18.572 20.126 20.345 52.116 2.149 6.515
> 4194304 18.711 19.663 19.811 52.831 1.350 13.208
> 2097152 19.112 19.927 19.130 52.832 1.022 26.416
> 1048576 19.771 19.686 20.010 51.661 0.356 51.661
> 524288 19.585 19.940 19.483 52.065 0.515 104.131
> 262144 19.168 20.794 19.605 51.634 1.757 206.535
> 131072 19.077 20.776 20.271 51.160 1.849 409.282
> 65536 19.643 21.230 19.144 51.284 2.227 820.549
> 32768 19.702 20.869 19.686 51.020 1.380 1632.635
> 16384 21.218 20.222 20.221 49.846 1.121 3190.174
>
> 2) client: default, server: 64 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 20.881 20.102 21.689 49.065 1.522 0.767
> 33554432 20.329 19.938 20.522 50.543 0.609 1.579
> 16777216 20.247 19.744 20.912 50.468 1.185 3.154
> 8388608 19.739 20.184 21.032 50.433 1.318 6.304
> 4194304 19.968 18.748 20.230 52.174 1.750 13.043
> 2097152 19.633 20.068 19.858 51.584 0.462 25.792
> 1048576 20.552 20.618 20.974 49.437 0.440 49.437
> 524288 21.595 20.830 20.454 48.881 1.098 97.762
> 262144 21.720 20.602 20.176 49.201 1.515 196.805
> 131072 20.976 19.089 20.712 50.634 2.144 405.072
> 65536 20.661 19.952 19.312 51.303 1.414 820.854
> 32768 21.155 18.464 20.640 51.159 3.081 1637.090
> 16384 22.023 19.944 20.629 49.159 2.008 3146.205
>
> 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 21.709 19.315 18.319 52.028 3.631 0.813
> 33554432 20.745 19.209 19.048 52.142 1.976 1.629
> 16777216 19.762 19.175 19.485 52.591 0.649 3.287
> 8388608 19.812 19.142 19.574 52.498 0.749 6.562
> 4194304 19.931 19.786 19.505 51.877 0.466 12.969
> 2097152 19.473 19.208 19.438 52.859 0.322 26.430
> 1048576 19.524 19.033 19.477 52.941 0.610 52.941
> 524288 20.115 20.402 19.542 51.166 0.920 102.333
> 262144 19.291 19.715 21.016 51.249 1.844 204.996
> 131072 18.782 19.130 20.334 52.802 1.775 422.419
> 65536 19.030 19.233 20.328 52.475 1.504 839.599
> 32768 19.147 19.326 19.411 53.074 0.303 1698.357
> 16384 19.573 19.596 20.417 51.575 1.005 3300.788
>
> 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 22.604 21.707 20.721 47.298 1.683 0.739
> 33554432 21.654 20.812 21.162 48.293 0.784 1.509
> 16777216 20.461 19.782 21.160 50.068 1.377 3.129
> 8388608 20.886 20.434 21.512 48.914 1.028 6.114
> 4194304 22.154 20.512 21.433 47.974 1.517 11.993
> 2097152 22.258 20.971 20.738 48.071 1.478 24.035
> 1048576 19.953 21.294 19.662 50.497 1.731 50.497
> 524288 21.577 20.884 20.883 48.509 0.743 97.019
> 262144 20.959 20.749 20.256 49.587 0.712 198.347
> 131072 19.926 21.542 19.634 50.360 2.022 402.877
> 65536 20.973 22.546 20.840 47.793 1.685 764.690
> 32768 20.695 21.031 21.182 48.837 0.476 1562.791
> 16384 20.163 21.112 20.037 50.133 1.159 3208.481
>
> 5) Server RA-context Patched, client: default, server: default
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 19.756 23.647 18.852 49.818 4.717 0.778
> 33554432 18.892 19.727 18.857 53.472 1.106 1.671
> 16777216 18.943 19.255 18.949 53.760 0.409 3.360
> 8388608 18.766 19.105 18.847 54.165 0.413 6.771
> 4194304 19.177 19.609 20.191 52.111 1.097 13.028
> 2097152 18.968 19.517 18.862 53.581 0.797 26.790
> 1048576 18.833 19.912 18.626 53.592 1.551 53.592
> 524288 19.128 19.379 19.134 53.298 0.324 106.596
> 262144 18.955 19.328 18.879 53.748 0.550 214.992
> 131072 18.401 19.642 18.928 53.961 1.439 431.691
> 65536 19.366 19.822 18.615 53.182 1.384 850.908
> 32768 19.252 19.229 18.752 53.683 0.653 1717.857
> 16384 21.373 19.507 19.162 51.282 2.415 3282.039
>
> 6) Server RA-context Patched, 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 22.753 21.071 20.532 47.825 2.061 0.747
> 33554432 20.404 19.239 20.722 50.943 1.644 1.592
> 16777216 20.914 20.114 21.854 48.910 1.655 3.057
> 8388608 19.524 21.932 21.465 48.949 2.510 6.119
> 4194304 20.306 20.809 20.000 50.279 0.820 12.570
> 2097152 20.133 20.194 20.181 50.770 0.066 25.385
> 1048576 19.515 21.593 20.052 50.321 2.128 50.321
> 524288 20.231 20.502 20.299 50.335 0.284 100.670
> 262144 19.620 19.737 19.911 51.834 0.313 207.336
> 131072 20.486 21.138 22.339 48.089 1.711 384.714
> 65536 20.113 18.322 22.247 50.943 4.025 815.088
> 32768 23.341 23.328 20.809 45.659 2.511 1461.089
> 16384 20.962 21.839 23.405 46.496 2.100 2975.773
>
> 7) Server RA-context Patched, 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 19.565 19.028 19.164 53.196 0.627 0.831
> 33554432 19.048 18.401 18.940 54.491 0.828 1.703
> 16777216 18.728 19.330 19.076 53.778 0.699 3.361
> 8388608 19.174 18.710 19.922 53.179 1.368 6.647
> 4194304 19.133 18.514 19.672 53.628 1.331 13.407
> 2097152 18.903 18.547 20.070 53.468 1.782 26.734
> 1048576 19.210 19.204 18.994 53.513 0.282 53.513
> 524288 18.978 18.723 20.839 52.596 2.464 105.192
> 262144 18.912 18.590 18.635 54.726 0.415 218.905
> 131072 18.732 18.578 19.797 53.837 1.505 430.694
> 65536 19.046 18.872 19.318 53.678 0.516 858.852
> 32768 18.490 18.582 20.374 53.583 2.353 1714.661
> 16384 19.138 19.215 20.602 52.167 1.744 3338.700
>
> 8) Server RA-context Patched, 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 21.029 21.654 21.093 48.177 0.630 0.753
> 33554432 21.174 19.759 20.659 49.918 1.435 1.560
> 16777216 20.385 20.235 22.145 49.026 1.976 3.064
> 8388608 19.053 20.162 20.158 51.778 1.391 6.472
> 4194304 20.123 23.173 20.073 48.696 3.188 12.174
> 2097152 19.401 20.824 20.326 50.778 1.500 25.389
> 1048576 21.821 21.401 21.026 47.825 0.724 47.825
> 524288 21.478 20.742 21.355 48.332 0.742 96.664
> 262144 20.290 20.183 20.980 50.004 0.853 200.015
> 131072 20.299 21.501 20.766 49.127 1.158 393.020
> 65536 21.087 19.340 20.867 50.193 1.959 803.092
> 32768 21.597 21.223 23.504 46.410 2.039 1485.132
> 16384 21.681 21.709 22.944 46.343 1.212 2965.967
>
> 9) Server RA-context Patched, 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 42.767 40.615 41.188 24.672 0.535 0.386
> 33554432 41.204 42.294 40.514 24.780 0.437 0.774
> 16777216 39.774 42.809 41.804 24.720 0.762 1.545
> 8388608 42.292 41.799 40.386 24.689 0.486 3.086
> 4194304 41.784 39.037 41.830 25.073 0.819 6.268
> 2097152 41.983 41.145 44.115 24.164 0.703 12.082
> 1048576 41.468 43.495 41.640 24.276 0.520 24.276
> 524288 42.631 42.724 41.267 24.267 0.387 48.535
> 262144 41.930 41.954 41.975 24.408 0.011 97.634
> 131072 42.511 41.266 42.835 24.269 0.393 194.154
> 65536 41.307 41.544 40.746 24.857 0.203 397.704
> 32768 42.270 42.728 40.822 24.425 0.478 781.607
> 16384 39.307 40.044 40.259 25.686 0.264 1643.908
> 8192 41.258 40.879 40.969 24.955 0.098 3194.183
>
> 10) Server RA-context Patched, 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 26.160 26.878 25.790 38.982 0.666 0.609
> 33554432 25.832 25.362 25.695 39.956 0.309 1.249
> 16777216 26.119 24.769 25.526 40.221 0.876 2.514
> 8388608 25.660 26.257 25.106 39.898 0.730 4.987
> 4194304 26.603 25.404 25.271 39.773 0.910 9.943
> 2097152 26.012 24.815 26.064 39.973 0.914 19.986
> 1048576 25.256 27.073 25.153 39.693 1.323 39.693
> 524288 29.452 28.883 29.146 35.118 0.280 70.236
> 262144 26.559 27.315 26.837 38.067 0.440 152.268
> 131072 25.259 25.794 25.992 39.879 0.483 319.030
> 65536 26.417 25.205 26.177 39.503 0.808 632.047
> 32768 26.453 26.401 25.759 39.083 0.474 1250.669
> 16384 24.701 24.609 25.143 41.265 0.385 2640.945
>
> 11) Server RA-context Patched, 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 29.629 31.703 30.407 33.513 0.930 0.524
> 33554432 29.768 29.598 30.717 34.111 0.553 1.066
> 16777216 30.054 30.640 30.102 33.837 0.295 2.115
> 8388608 29.906 29.744 31.394 33.762 0.813 4.220
> 4194304 30.708 30.797 30.418 33.420 0.177 8.355
> 2097152 31.364 29.646 30.712 33.511 0.781 16.755
> 1048576 30.757 30.600 30.470 33.455 0.128 33.455
> 524288 29.715 31.176 29.977 33.822 0.701 67.644
> 262144 30.533 30.218 30.259 33.755 0.155 135.021
> 131072 30.403 32.609 30.651 32.831 1.016 262.645
> 65536 30.846 30.208 32.116 32.993 0.835 527.889
> 32768 30.526 29.794 30.556 33.809 0.397 1081.878
> 16384 31.560 31.532 30.938 32.673 0.301 2091.092
Those are on the server without io_context-2.6.29 and readahead-2.6.29
patches applied and with CFQ scheduler, correct?
Then we see how reorder of requests caused by many I/O threads
submitting I/O in separate I/O contexts badly affect performance and no
RA, especially with default 128KB RA size, can solve it. Less
max_sectors_kb on the client => more requests it sends at once => more
reorder on the server => worse throughput. Although, Fengguang, in
theory, context RA with 2MB RA size should considerably help it, no?
Ronald, can you perform those tests again with both io_context-2.6.29
and readahead-2.6.29 patches applied on the server, please?
Thanks,
Vlad
next prev parent reply other threads:[~2009-07-03 10:56 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 [this message]
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
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=4A4DE3C1.5080307@vlnb.net \
--to=vst@vlnb.net \
--cc=fengguang.wu@intel.com \
--cc=intercommit@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/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.