lkml.org 
[lkml]   [2012]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH RESEND v1 00/16] vfs: hot data tracking
    Date
    From: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>

    HI, guys,

    This patchset has been done scalability or performance tests
    by fs_mark, ffsb and compilebench.
    I have done the perf testing on Linux 3.7.0-rc8+ with Intel(R) Core(TM)
    i7-3770 CPU @ 3.40GHz with 8 CPUs, 16G ram and 260G disk.

    Any comments or ideas are appreciated, thanks.

    NOTE:

    The patchset can be obtained via my kernel dev git on github:
    git://github.com/wuzhy/kernel.git hot_tracking
    If you're interested, you can also review them via
    https://github.com/wuzhy/kernel/commits/hot_tracking

    For more info, please check hot_tracking.txt in Documentation

    Below is the perf testing report:

    1. fs_mark test

    w/o: without hot tracking
    w/ : with hot tracking

    Count Size FSUse% Files/sec App Overhead

    w/o w/ w/o w/ w/o w/

    800000 1 2 3 13756.4 32144.9 5350627 5436291
    1600000 1 4 5 1163.4 1799.3 20848119 21708216
    2400000 1 6 6 1360.8 1252.5 6798705 8715322
    3200000 1 8 8 1600.1 1196.3 5751129 6013792
    4000000 1 9 9 1071.4 1191.2 17204725 26786369
    4800000 1 10 10 1483.5 1447.9 19555541 8383046
    5600000 1 11 11 1457.9 1699.5 5783588 10074681
    6400000 1 12 13 1658.8 1628.5 6992697 6185551
    7200000 1 14 14 1662.4 1857.1 5796793 13772592
    8000000 1 15 15 2930.0 2653.8 12431682 6152573
    8800000 1 16 17 1630.8 1665.0 7666719 13682765
    9600000 1 18 18 1530.3 1583.9 5823644 10171644
    10400000 1 19 19 1437.9 1798.6 20935224 6048083
    11200000 1 20 20 1529.0 1550.6 6647450 6003151
    12000000 1 21 22 1558.6 1501.8 12539509 18144939
    12800000 1 23 23 1644.2 1432.1 7074419 28101975
    13600000 1 24 24 1753.6 1650.2 7164297 20888972
    14400000 1 25 25 2750.0 1483.9 12756692 7441225
    15200000 1 27 27 1551.1 1514.3 5741066 8250443
    16000000 1 28 28 1610.8 1635.9 72193860 8545285
    16800000 1 29 29 1646.7 1907.7 8945856 11703513
    17600000 1 30 31 1496.6 2722.3 5858961 8989393
    18400000 1 32 32 1457.7 1565.7 10914475 26504660
    19200000 1 33 33 1437.6 1518.7 6708975 213303618
    20000000 1 34 34 1825.4 1521.1 5722086 12490907
    20800000 1 36 35 1718.4 1611.5 5873290 17942534
    21600000 1 37 37 2152.6 1536.9 113050627 8717940
    22400000 1 38 38 2443.7 1788.2 7398122 19834765
    23200000 1 39 39 1518.5 1587.6 5770959 10134882
    24000000 1 41 41 1536.8 2164.0 5751248 7214626
    24800000 1 42 42 1576.6 2939.4 7390314 6070271
    25600000 1 43 43 1707.4 1535.9 11075939 6052896
    26400000 1 44 44 1522.5 1563.1 10142987 22549898
    27200000 1 46 46 1827.4 1608.5 11613016 24828125
    28000000 1 47 47 3420.5 1741.9 8059985 16599156
    28800000 1 48 48 1815.5 1944.4 7847931 9043277
    29600000 1 50 49 1650.0 1596.6 5636323 7929164
    30400000 1 51 51 1683.7 1573.3 5766323 19369146
    31200000 1 52 52 1610.1 1669.8 9256111 9899107
    32000000 1 53 53 1645.2 3081.0 7855010 6057257
    32800000 1 54 55 1835.3 3122.0 6899141 6143875
    33600000 1 56 56 1916.8 1734.8 10271967 6049509
    34400000 1 57 57 3119.2 1630.8 11503274 13975417
    35200000 1 58 58 1629.2 1695.7 6827225 6214248
    36000000 1 60 60 1636.5 1695.4 38077664 16211067
    36800000 1 61 61 1665.2 2069.1 19948817 9358494
    37600000 1 62 62 1734.5 1931.5 26487196 8954836
    38400000 1 63 63 1625.8 1654.0 6649289 9131844
    39200000 1 65 65 1778.4 1663.3 11653376 7144960
    40000000 1 66 66 1851.0 1935.6 8164470 11288753
    40800000 1 67 67 3171.0 3431.6 12358380 6072820
    41600000 1 69 69 1714.3 1954.3 13765035 9364495
    42400000 1 70 70 1591.0 1681.8 18733304 7407689
    43200000 1 71 71 1537.2 1642.8 19534908 6163018
    44000000 1 72 72 1630.3 1641.2 23479883 10967509
    44800000 1 74 74 1877.5 1651.9 8174965 9484587
    45600000 1 75 75 3322.4 1653.6 14740938 7497831
    46400000 1 76 76 1706.9 1840.6 10348550 23296562
    47200000 1 77 78 1837.7 2515.3 13917543 14683192
    48000000 1 79 79 1642.6 2368.6 14365759 6080942
    48800000 1 80 80 1827.1 1655.2 9234312 7412406
    49600000 1 81 81 1631.0 1858.7 7543970 18610881
    50400000 1 82 82 1560.5 1865.0 21374219 6598771

    From the above table, when the same count files with same size are created, how FS is full is
    basically same.

    2. FFSB test
    w/o hot tracking w/ hot tracking ratio
    v1 v2 (v2-v1)/v1
    large_file_create
    1 thread
    - Trans/sec 28918.75 29014.48 +0.33%
    - Throughput 113MB/sec 113MB/sec +0.0%
    - %CPU 4.8% 5.1% +6.3%
    - Trans/%CPU 602473.96 568911.37 -5.6%
    8 threads
    - Trans/sec 28480.37 28541.25 +0.2%
    - Throughput 111MB/sec 111MB/sec +0.0%
    - %CPU 5.6% 5.9% +5.4%
    - Trans/%CPU 508578.04 483750 -4.9%
    32 threads
    - Trans/sec 25011.86 26992.32 +7.9%
    - Throughput 97.7MB/sec 105MB/sec +7.5%
    - %CPU 6.2% 7.1% +14.8%
    - Trans/%CPU 403417.10 380173.52 -5.8%

    large_file_seq_read
    1 thread
    - Trans/sec 35303.23 34838.02 -1.3%
    - Throughput 138MB/sec 136MB/sec -1.4%
    - %CPU 5.4% 5.4% +0.0%
    - Trans/%CPU 653763.52 645148.52 -1.3%
    8 threads
    - Trans/sec 11902.82 11205.22 -5.9%
    - Throughput 46.5MB/sec 43.8MB/sec -5.8%
    - %CPU 2.1% 2.0% -4.8%
    - Trans/%CPU 566800.95 560261 -1.2%
    32 threads
    - Trans/sec 5068.48 5316.36 +4.9%
    - Throughput 19.8MB/sec 20.8MB/sec +5.1%
    - %CPU 0.9% 1.0% +11.1%
    - Trans/%CPU 563164.45 531636 -5.6%

    random_write
    1 thread
    - Trans/sec 729.01 738.89 +1.4%
    - Throughput 99.7MB/sec 101MB/sec +1.3%
    - %CPU 0.1% 0.1% +0.0%
    - Trans/%CPU 72901 73889 +1.4%
    8 threads
    - Trans/sec 714.56 714.57 +0.0%
    - Throughput 97.7MB/sec 97.7MB/sec +0.0%
    - %CPU 0.2% 0.2% +0.0%
    - Trans/%CPU 35728 35728.5 +0.0%
    32 threads
    - Trans/sec 698.62 692.59 -0.9%
    - Throughput 95.5MB/sec 94.7MB/sec -0.8%
    - %CPU 0.2% 0.2% +0.0%
    - Trans/%CPU 34931 34629.5 -0.9%

    random_read
    1 thread
    - Trans/sec 225.49 227.03 +0.7%
    - Throughput 902KB/sec 908KB/sec +0.7%
    - %CPU 1.1% 1.1% +0.0%
    - Trans/%CPU 20499.10 20639.10 +0.7%
    8 threads
    - Trans/sec 106.72 105.76 -0.9%
    - Throughput 427KB/sec 423KB/sec -0.9%
    - %CPU 0.5% 0.5% +0.0%
    - Trans/%CPU 2134.4 2115.2 -0.9%
    32 threads
    - Trans/sec 107.44 108.26 +0.8%
    - Throughput 430KB/sec 433KB/sec +0.7%
    - %CPU 0.5% 0.5% +0.0%
    - Trans/%CPU 2148.8 2165.2 +0.8%

    mail_server
    1 thread
    - Trans/sec 681.67 732.66 +7.5%
    - Throughput [read] 1.77MB/sec 1.99MB/sec +12.4%
    - Throughput [write] 858KB/sec 887KB/sec +3.4%
    - %CPU 0.6% 0.6% +0.0%
    - Trans/%CPU 11361.17 12211 +7.5%
    8 threads
    - Trans/sec 630.48 597.08 -5.3%
    - Throughput [read] 1.64MB/sec 1.54MB/sec -6.1%
    - Throughput [write] 814KB/sec 784KB/sec -3.7%
    - %CPU 0.6% 0.5% -16.7%
    - Trans/%CPU 10508 11941.6 +13.6%
    32 threads
    - Trans/sec 598.68 566.05 -5.5%
    - Throughput [read] 1.53MB/sec 1.5MB/sec -2.0%
    - Throughput [write] 804KB/sec 705KB/sec -12.3%
    - %CPU 0.7% 0.6% -14.2%
    - Trans/%CPU 8552.57 9434.17 +10.3%

    3. Compilebench test

    w/o hot tracking w/ hot tracking ratio
    v1 v2 (v2-v1)/v1
    intial create 114.81 MB/s 118.32 MB/s +3.1%
    create 11.98 MB/s 12.26 MB/s +2.3%
    patch 3.61 MB/s 3.66 MB/s +1.4%
    compile 46.40 MB/s 48.07 MB/s +3.6%
    clean 126.33 MB/s 128.75 MB/s +1.9%
    read tree 9.93 MB/s 9.71 MB/s -2.2%
    read compiled tree 17.19 MB/s 17.52 MB/s +1.9%
    delete tree 12.23 seconds 11.13 seconds -9.0%
    delete compiled tree 12.98 seconds 16.05 seconds +26.7%
    stat tree 7.03 seconds 5.51 seconds -21.6%
    stat compiled tree 12.19 seconds 9.06 seconds -25.7%

    Changelog:

    - Solved 64 bits inode number issue. [David Sterba]
    - Embed struct hot_type in struct file_system_type [Darrick J. Wong]
    - Cleanup Some issues [David Sterba]
    - Use a static hot debugfs root [Greg KH]
    - Rewritten debugfs support based on seq_file operation. [Dave Chinner]
    - Refactored workqueue support. [Dave Chinner]
    - Turn some Micro into be tunable [Zhiyong, Zheng Liu]
    TIME_TO_KICK, and HEAT_UPDATE_DELAY
    - Introduce hot func registering framework [Zhiyong]
    - Remove global variable for hot tracking [Zhiyong]
    - Add xfs hot tracking support [Dave Chinner]
    - Add ext4 hot tracking support [Zheng Liu]
    - Cleanedup a lot of other issues [Dave Chinner]
    - Added memory shrinker [Dave Chinner]
    - Converted to one workqueue to update map info periodically [Dave Chinner]
    - Cleanedup a lot of other issues [Dave Chinner]
    - Reduce new files and put all in fs/hot_tracking.[ch] [Dave Chinner]
    - Add btrfs hot tracking support [Zhiyong]
    - The first three patches can probably just be flattened into one.
    [Marco Stornelli , Dave Chinner]

    Zhi Yong Wu (16):
    vfs: introduce some data structures
    vfs: add init and cleanup functions
    vfs: add I/O frequency update function
    vfs: add two map arrays
    vfs: add hooks to enable hot tracking
    vfs: add temp calculation function
    vfs: add map info update function
    vfs: add aging function
    vfs: add one work queue
    vfs: add FS hot type support
    vfs: register one shrinker
    vfs: add one ioctl interface
    vfs: add debugfs support
    proc: add two hot_track proc files
    btrfs: add hot tracking support
    vfs: add documentation

    Documentation/filesystems/00-INDEX | 2 +
    Documentation/filesystems/hot_tracking.txt | 255 ++++++
    fs/Makefile | 2 +-
    fs/btrfs/ctree.h | 1 +
    fs/btrfs/super.c | 22 +-
    fs/compat_ioctl.c | 5 +
    fs/dcache.c | 2 +
    fs/direct-io.c | 6 +
    fs/hot_tracking.c | 1345 ++++++++++++++++++++++++++++
    fs/hot_tracking.h | 52 ++
    fs/ioctl.c | 74 ++
    include/linux/fs.h | 5 +
    include/linux/hot_tracking.h | 152 ++++
    kernel/sysctl.c | 14 +
    mm/filemap.c | 6 +
    mm/page-writeback.c | 12 +
    mm/readahead.c | 7 +
    17 files changed, 1960 insertions(+), 2 deletions(-)
    create mode 100644 Documentation/filesystems/hot_tracking.txt
    create mode 100644 fs/hot_tracking.c
    create mode 100644 fs/hot_tracking.h
    create mode 100644 include/linux/hot_tracking.h
    --
    1.7.6.5



    \
     
     \ /
      Last update: 2012-12-20 16:01    [from the cache]
    ©2003-2011 Jasper Spaans