Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-16162

ldiskfs: use low disk tracks for block allocation on empty or moderately full filesystems.

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Major
    • None
    • None
    • 9223372036854775807

    Description

      Disk performance degrades, when new blocks get allocated near the end of the disk,

      For example, the below are obdsurvey-results when mb_last_group is manually set to 0/75%/90% of max block group num before running the test:

      3949.61 (0) vs 3677.15 (75%) vs 3133.43 (90%)
      
      [root@cslmo2305 ~]# rpm -qi lustre_ib | grep Version | dshbak -c
      ----------------
      Version
      ----------------
      2.15.0.3_rc2_cray_165_g3355f27
      [root@cslmo2305 ~]# echo 0 > /proc/fs/ldiskfs/md*/mb_last_group
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      0
      [root@cslmo2305 ~]# nobjlo=2 nobjhi=2 thrlo=1024 thrhi=1024 size=393216 rszlo=4096 rszhi=4096 tests_str="write read" obdfilter-survey | egrep -v "^done" 2>/dev/null
      Wed May 18 13:23:57 UTC 2022 Obdfilter-survey for case=disk from cslmo2305
      ost  1 sz 402653184K rsz 4096K obj    2 thr 1024 write 3949.61 [1399.72, 4272.29] read 4451.99 [1679.81, 5986.40] 
      /usr/bin/iokit-libecho: line 235: 69223 Killed                  remote_shell $host "vmstat 5 >> $host_vmstatf" &> /dev/null
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      3565
      [root@cslmo2305 ~]# echo 0 > /proc/fs/ldiskfs/md*/mb_last_group
      [root@cslmo2305 ~]# nobjlo=2 nobjhi=2 thrlo=1024 thrhi=1024 size=393216 rszlo=4096 rszhi=4096 tests_str="write read" obdfilter-survey | egrep -v "^done" 2>/dev/null
      Wed May 18 13:27:24 UTC 2022 Obdfilter-survey for case=disk from cslmo2305
      ost  1 sz 402653184K rsz 4096K obj    2 thr 1024 write 3975.33 [1207.70, 4299.46] read 4517.36 [1623.78, 5675.05] 
      /usr/bin/iokit-libecho: line 235: 76282 Killed                  remote_shell $host "vmstat 5 >> $host_vmstatf" &> /dev/null
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      3590
      [root@cslmo2305 ~]# echo 1040830 > /proc/fs/ldiskfs/md*/mb_last_group
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      1040830
      [root@cslmo2305 ~]# nobjlo=2 nobjhi=2 thrlo=1024 thrhi=1024 size=393216 rszlo=4096 rszhi=4096 tests_str="write read" obdfilter-survey | egrep -v "^done" 2>/dev/null
      Wed May 18 13:30:56 UTC 2022 Obdfilter-survey for case=disk from cslmo2305
      ost  1 sz 402653184K rsz 4096K obj    2 thr 1024 write 3677.15 [2194.42, 3995.29] read 4819.83 [3596.32, 5391.15] 
      /usr/bin/iokit-libecho: line 235: 82505 Killed                  remote_shell $host "vmstat 5 >> $host_vmstatf" &> /dev/null
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      1044021
      [root@cslmo2305 ~]# echo 1040830 > /proc/fs/ldiskfs/md*/mb_last_group
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      1040830
      [root@cslmo2305 ~]# nobjlo=2 nobjhi=2 thrlo=1024 thrhi=1024 size=393216 rszlo=4096 rszhi=4096 tests_str="write read" obdfilter-survey | egrep -v "^done" 2>/dev/null
      Wed May 18 13:34:34 UTC 2022 Obdfilter-survey for case=disk from cslmo2305
      ost  1 sz 402653184K rsz 4096K obj    2 thr 1024 write 3666.51 [3231.40, 4047.68] read 4798.87 [3963.07, 5255.19] 
      /usr/bin/iokit-libecho: line 235: 88607 Killed                  remote_shell $host "vmstat 5 >> $host_vmstatf" &> /dev/null
      [root@cslmo2305 ~]# cat /proc/fs/ldiskfs/md*/mb_last_group
      1044030
      [root@cslmo2305 ~]# echo 1248996 > /proc/fs/ldiskfs/md
      

      Attachments

        Issue Links

          Activity

            People

              zam Alexander Zarochentsev
              zam Alexander Zarochentsev
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: