We faced a situation when all (32) cpus on a node content on sbi->s_es_lock shrinking extents on a single superblock and shrinking extents goes very slow (180 sec in average!).
crash> struct ext4_sb_info 0xffff882fcb7ca800 -p s_es_nr_inode = 3173832, s_es_stats = { es_stats_shrunk = 70, es_stats_cache_hits = 35182748, es_stats_cache_misses = 2622931, es_stats_scan_time = 182642303461, es_stats_max_scan_time = 276290979674, This patchset speeds up parallel shrink a bit. If we findout this is not enough, next step is to limit the number of shrinkers working on a single superslock in parallel. https://jira.sw.ru/browse/PSBM-83335 Jan Kara (1): ms/ext4: move handling of list of shrinkable inodes into extent status code Konstantin Khorenko (1): ext4: don't iterate over sbi->s_es_list more than the number of elements Waiman Long (1): ext4: Make cache hits/misses per-cpu counts fs/ext4/extents.c | 2 -- fs/ext4/extents_status.c | 56 +++++++++++++++++++++++++++++++++++++----------- fs/ext4/extents_status.h | 6 ++---- fs/ext4/inode.c | 2 -- fs/ext4/ioctl.c | 2 -- fs/ext4/super.c | 1 - 6 files changed, 45 insertions(+), 24 deletions(-) -- 2.15.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel