• Daeho Jeong's avatar
    f2fs: introduce periodic iostat io latency traces · a4b68176
    Daeho Jeong authored
    Whenever we notice some sluggish issues on our machines, we are always
    curious about how well all types of I/O in the f2fs filesystem are
    handled. But, it's hard to get this kind of real data. First of all,
    we need to reproduce the issue while turning on the profiling tool like
    blktrace, but the issue doesn't happen again easily. Second, with the
    intervention of any tools, the overall timing of the issue will be
    slightly changed and it sometimes makes us hard to figure it out.
    
    So, I added the feature printing out IO latency statistics tracepoint
    events, which are minimal things to understand filesystem's I/O related
    behaviors, into F2FS_IOSTAT kernel config. With "iostat_enable" sysfs
    node on, we can get this statistics info in a periodic way and it
    would cause the least overhead.
    
    [samples]
     f2fs_ckpt-254:1-507     [003] ....  2842.439683: f2fs_iostat_latency:
    dev = (254,11), iotype [peak lat.(ms)/avg lat.(ms)/count],
    rd_data [136/1/801], rd_node [136/1/1704], rd_meta [4/2/4],
    wr_sync_data [164/16/3331], wr_sync_node [152/3/648],
    wr_sync_meta [160/2/4243], wr_async_data [24/13/15],
    wr_async_node [0/0/0], wr_async_meta [0/0/0]
    
     f2fs_ckpt-254:1-507     [002] ....  2845.450514: f2fs_iostat_latency:
    dev = (254,11), iotype [peak lat.(ms)/avg lat.(ms)/count],
    rd_data [60/3/456], rd_node [60/3/1258], rd_meta [0/0/1],
    wr_sync_data [120/12/2285], wr_sync_node [88/5/428],
    wr_sync_meta [52/6/2990], wr_async_data [4/1/3],
    wr_async_node [0/0/0], wr_async_meta [0/0/0]
    Signed-off-by: default avatarDaeho Jeong <daehojeong@google.com>
    Reviewed-by: default avatarChao Yu <chao@kernel.org>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    a4b68176
iostat.c 7.46 KB