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

Create pid-based hash to enhance Jobstats performance

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.11.0
    • Lustre 2.9.0
    • None
    • 9223372036854775807

    Description

      Currently jobstats gets information by either dedicating an entire node to a single job (LU-7195) or reading from the userspace environment for each call. The first is very fast, but can be inaccurate, the second introduces a significant performance penalty on the client. This patch creates a cache of JobID names mapped to PIDs. It has several fallback mechanisms in order to present the most accurate info available.

      Attachments

        1. JobID Cache Proposal.docx
          111 kB
          Ben Evans
        2. JobID Cache Proposal.docx
          106 kB
          Ben Evans

        Issue Links

          Activity

            [LU-9221] Create pid-based hash to enhance Jobstats performance
            pjones Peter Jones added a comment -

            Landed for 2.11

            pjones Peter Jones added a comment - Landed for 2.11

            Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/25208/
            Subject: LU-9221 jobstats: Create a pid-based hash for jobid values
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 08479b74ec3599ee91e14f3f646389bb0aca4575

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/25208/ Subject: LU-9221 jobstats: Create a pid-based hash for jobid values Project: fs/lustre-release Branch: master Current Patch Set: Commit: 08479b74ec3599ee91e14f3f646389bb0aca4575

            Another interesting tool which might be useful to implement this feature is the linux key management system (see man keyctl).

            One can create a key with some data attached and link it to one of the available keyrings (thread, process, session, default session, etc). The key will be stored on a temporal or permanent basis. The cache can be easily searched from the kernel using request_key().

            It's also possible to create a key type so that requested keys are created using a userspace upcall (see /sbin/request-key, /etc/request-key.conf).

            panda Andrew Perepechko added a comment - Another interesting tool which might be useful to implement this feature is the linux key management system (see man keyctl). One can create a key with some data attached and link it to one of the available keyrings (thread, process, session, default session, etc). The key will be stored on a temporal or permanent basis. The cache can be easily searched from the kernel using request_key(). It's also possible to create a key type so that requested keys are created using a userspace upcall (see /sbin/request-key, /etc/request-key.conf).
            bevans Ben Evans (Inactive) added a comment - https://jira.hpdd.intel.com/browse/LUDOC-381
            bevans Ben Evans (Inactive) added a comment - JobID Cache Proposal.docx Updated doc

            @cory: I'd be glad to help but it will not have much time to review Ben's patch before LUG...

            As seen in first revisions of the patch, introducing such a new cache comes with a risk of subtle race conditions and memory leaks. Therefore reviewing and testing it seriously cannot be done in a rush.

            hdoreau Henri Doreau (Inactive) added a comment - @cory: I'd be glad to help but it will not have much time to review Ben's patch before LUG... As seen in first revisions of the patch, introducing such a new cache comes with a risk of subtle race conditions and memory leaks. Therefore reviewing and testing it seriously cannot be done in a rush.
            pjones Peter Jones added a comment -

            Could still make 2.10 if reviews complete in time but otherwise will be in 2.10.1

            pjones Peter Jones added a comment - Could still make 2.10 if reviews complete in time but otherwise will be in 2.10.1
            spitzcor Cory Spitz added a comment -

            @hdoreau, the OpenSFS LWG is looking to you to be the reviewer of record for this enhancement. Can you accept? We're getting close to code cut-off for v2.10 and we were hoping that you would have time for reviews. Thanks!

            spitzcor Cory Spitz added a comment - @hdoreau, the OpenSFS LWG is looking to you to be the reviewer of record for this enhancement. Can you accept? We're getting close to code cut-off for v2.10 and we were hoping that you would have time for reviews. Thanks!
            spitzcor Cory Spitz added a comment -

            Patch up for review is at https://review.whamcloud.com/#/c/25208/.

            spitzcor Cory Spitz added a comment - Patch up for review is at https://review.whamcloud.com/#/c/25208/ .

            People

              bevans Ben Evans (Inactive)
              bevans Ben Evans (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: