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
