Jeff Mahoney wrote:

>
>
> The results showed that delayed allocation was only slightly faster than
> waiting on the buffers. The reason for this is that the majority of the
> time is actually spent issuing the block read requests, not actually
> waiting for their results. 

Can you define "spent issuing"?  Perhaps this is simply a bad choice of
block device congestion configuration, and changing it would fix
things.  Because device congestion is based on NUMBER of requests, not
their size, bitmap reading would congest things more than file IO.

Block device congestion limits I suspect to be in need of serious
review, not just because of bitmaps.....

> The amount of time waiting on the blocks
> appears not to change radically, though the amount of time issuing the
> read requests does.
>
> Here are the actual numbers from the test runs. Between each mount
> attempt, I attempted to clear the system caches by allocating and
> writing to all the memory on the system, as well as the disk caches by
> reading 50 MB from disk. I performed the tests with four block sizes in
> order to increase the number of bitmap blocks that need to be loaded at
> mount time. Note that each decrease in block size increases the number
> of bitmaps fourfold. This is because when the block size is halved, it
> not only doubles the number of blocks, but also halves the capacity of
> each bitmap block.
>
> 4k block size:                          2k block size:
> 10036464 blocks,                        20072928 blocks,
> 307 bitmaps (~= 39 GB)                  1226 bitmaps  (~= 153 GB @ 4k)
> -opin_bitmaps                           -opin_bitmaps
> sb_getblk loop: 0.0s                    sb_getblk loop: 0.3999643s
> ll_rw_block: 1.435871744s               ll_rw_block: 8.143272619s
> wait_on_buffer: 0.513519144s            wait_on_buffer: 1.990925198s
> real    0m4.551s                        real    0m10.906s
> user    0m0.000s                        user    0m0.000s
> sys     0m0.060s                        sys     0m0.028s
>
> -opin_bitmaps,delayed_bitmaps           -opin_bitmaps,delayed_bitmaps
> sb_getblk loop: 0.0s                    sb_getblk loop: 0.3999643s
> ll_rw_block: 1.443871029s               ll_rw_block: 8.944447839s
> real    0m2.128s                        real    0m8.630s
> user    0m0.000s                        user    0m0.000s
> sys     0m0.016s                        sys     0m0.020s
>
> -odyn_bitmaps                           -odyn_bitmaps
> real    0m0.626s                        real    0m0.850s
> user    0m0.000s                        user    0m0.000s
> sys     0m0.008s                        sys     0m0.016s
>
> 1k block size:                          512b block size:
> 40145856 blocks,                        80291712 blocks,
> 4901 bitmaps (~= 612 GB @ 4k)           19603 bitmaps (~= 2.4 [EMAIL 
> PROTECTED])
> -opin_bitmaps                           -opin_bitmaps
> sb_getblk loop: 0.19998214s             sb_getblk loop: 0.95991426s
> ll_rw_block: 33.727900516s              ll_rw_block: 110.98165711s
> wait_on_buffer: 1.423872816s            wait_on_buffer: 0.749324905s
> real    0m36.052s                       real    1m51.423s
> user    0m0.000s                        user    0m0.000s
> sys     0m0.124s                        sys     0m0.256s
>
> -opin_bitmaps,delayed_bitmaps           -opin_bitmaps,delayed_bitmaps
> sb_getblk loop: 0.23997856s             sb_getblk loop: 0.95991426s
> ll_rw_block: 33.644994731s              ll_rw_block: 109.427893721s
> real    0m34.562s                       real    1m50.693s
> user    0m0.004s                        user    0m0.004s
> sys     0m0.060s                        sys     0m0.232s
>
> -odyn_bitmaps                           -odyn_bitmaps
> real    0m0.516s                        real    0m0.601s
> user    0m0.000s                        user    0m0.000s
> sys     0m0.004s                        sys     0m0.000s
>
> I will post runtime results of each case early next week.
>
> -Jeff
>
> --
> Jeff Mahoney
> SuSE Labs

Reply via email to