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

add output aggregation for "lctl get_param"

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • None
    • 9223372036854775807

    Description

      When running "lctl get_param" on a system with hundreds of OSTs and MDTs, and thousands of clients, often there are are many lines of output that are identical for all devices. For example:

      # lctl get_param ldlm.namespaces.*.*
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.contended_locks=32
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.contention_seconds=2
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.ctime_age_limit=10
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.dirty_age_limit=10
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.early_lock_cancel=0
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.lock_count=0
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.lock_timeouts=0
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.lock_unused_count=0
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.lru_max_age=3900000
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.lru_size=0
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.max_nolock_bytes=0
      ldlm.namespaces.testfs-OST0000-osc-MDT0000.max_parallel_ast=1024
      ldlm.namespaces.testfs-OST0000-osc-MDT0001.contended_locks=32
      ldlm.namespaces.testfs-OST0000-osc-MDT0001.contention_seconds=2
      
      :
      :
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.contended_locks=32
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.contention_seconds=2
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.ctime_age_limit=10
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.dirty_age_limit=10
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.early_lock_cancel=0
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.lock_count=0
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.lock_timeouts=0
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.lock_unused_count=0
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.lru_max_age=3900000
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.lru_size=0
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.max_nolock_bytes=0
      ldlm.namespaces.testfs-OST0102-osc-MDT0013.max_parallel_ast=1024
      

      but it would be much more convenient if the output was aggregated with wildcards in a manner similar to how multiple parameters are specified with "lctl set_param":

      ldlm.namespaces.*.contended_locks=32
      ldlm.namespaces.*.contention_seconds=2
      ldlm.namespaces.*.ctime_age_limit=10
      ldlm.namespaces.*.dirty_age_limit=10
      ldlm.namespaces.*.early_lock_cancel=0
      ldlm.namespaces.*.lock_count=0
      ldlm.namespaces.*.lock_timeouts=0
      ldlm.namespaces.*.lock_unused_count=0
      ldlm.namespaces.testfs-OST00[00-14]-osc-MDT00[00-13].lru_max_age=3900000
      ldlm.namespaces.testfs-OST00[15-63]-osc-MDT00[00-11,13].lru_max_age=3900000
      ldlm.namespaces.testfs-OST00[15-63]-osc-MDT0012.lru_max_age=100000
      ldlm.namespaces.*.lru_size=0
      ldlm.namespaces.*.max_nolock_bytes=0
      ldlm.namespaces.*.max_parallel_ast=1024
      

      or something similar (it would be implementation dependent how disjoint regions of identifiers would be shown). This would not only allow reducing the amount of output, but also make it much more obvious in cases where there are differences in the settings (e.g. lru_max_age above).

      Something like "lctl merge_param" would take the output of "lctl get_param" as input and merge the lines, either by optionally (with new '-m' option) forking a process to pipe the output of "lctl get_param -m" into, or allowing the output of previously-captured "get_param" output to be aggregated (possibly from dsh or clush running on multiple nodes at once).

      There would have to be some implementation-specific smarts in the aggregation, for example to understand that client instance identifiers can be aggregated.

      Attachments

        Issue Links

          Activity

            People

              fdilger Fred Dilger
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: