• Hisashi Hifumi's avatar
    GFS2: Pagecache usage optimization on GFS2 · 229615de
    Hisashi Hifumi authored
    I introduced "is_partially_uptodate" aops for GFS2.
    
    A page can have multiple buffers and even if a page is not uptodate, some buffers
    can be uptodate on pagesize != blocksize environment.
    This aops checks that all buffers which correspond to a part of a file
    that we want to read are uptodate. If so, we do not have to issue actual
    read IO to HDD even if a page is not uptodate because the portion we
    want to read are uptodate.
    "block_is_partially_uptodate" function is already used by ext2/3/4.
    With the following patch random read/write mixed workloads or random read after
    random write workloads can be optimized and we can get performance improvement.
    
    I did a performance test using the sysbench.
    
    #sysbench --num-threads=16 --max-requests=200000 --test=fileio --file-num=1
    --file-block-size=8K --file-total-size=2G --file-test-mode=rndrw --file-fsync-freq=0
    --file-rw-ratio=1 run
    
    -2.6.29-rc6
    Test execution summary:
        total time:                          202.6389s
        total number of events:              200000
        total time taken by event execution: 2580.0480
        per-request statistics:
             min:                            0.0000s
             avg:                            0.0129s
             max:                            49.5852s
             approx.  95 percentile:         0.0462s
    
    -2.6.29-rc6-patched
    Test execution summary:
        total time:                          177.8639s
        total number of events:              200000
        total time taken by event execution: 2419.0199
        per-request statistics:
             min:                            0.0000s
             avg:                            0.0121s
             max:                            52.4306s
             approx.  95 percentile:         0.0444s
    
    arch: ia64
    pagesize: 16k
    blocksize: 4k
    Signed-off-by: default avatarHisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    229615de
ops_address.c 28.8 KB