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

mount.lustre for large filesystem runs slow debugfs commands

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Lustre 2.14.0
    • Labels:
      None
    • Rank (Obsolete):
      9223372036854775807

      Description

      Running strace of mount.lustre shows an interesting reason why it spent a huge mount of time on a large filesystem. mount.lustre invokes several 'debugfs' command internally, but they took a huge amount of time here. Here is example.

      10056 10:35:21.590086 execve("/sbin/debugfs", ["debugfs", "-c", "-R", "stat CONFIGS/mountdata", "/dev/sda"]
      10056 10:39:00.257586 +++ exited with 0 +++
      
      10134 10:39:00.259343 execve("/bin/sh", ["sh", "-c", "debugfs -c -R 'dump /CONFIGS/mou"...]
      10134 10:42:39.116052 +++ exited with 0 +++
      

      Total mount time was 982 sec in this time. But, It took 419 sec for just those two debugfs calls against 982 sec.

      These two calls are just reading the CONFIGS/mountdata file from the filesystem, but that could be done directly via libext2fs, along with many of the other operations in libmount_utuls_ldiskfs.c, rather than launching external binaries to do the work. We should take care not to load the whole filesystem metadata, if that can be avoided.

        Attachments

          Activity

            People

            • Assignee:
              dongyang Dongyang Li
              Reporter:
              adilger Andreas Dilger
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: