[Devel] [PATCH rh7 0/3] ext4: speedup shrinking non-delay extents

Konstantin Khorenko khorenko at virtuozzo.com
Fri Apr 13 13:08:47 MSK 2018


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



More information about the Devel mailing list