Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-47446

Measure cpu time taken by operations

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Critical - P2 Critical - P2
    • 4.9.0
    • Affects Version/s: None
    • Component/s: Internal Code
    • Labels:
    • Fully Compatible
    • Service arch 2020-10-19

      It would be valuable to measure cpu time consumed by an operation, both as it's running and rolled up by user (to measure resource consumption by a particular user). We could potentially expose this via currentOp, via server status metrics or perhaps in a custom agg pipeline (if by user).

      On linux pthread_getcpuclockid() offers a way to access cpu time consumed by a particular thread relatively easily. In turn, we could capture time at opCtx creation, then store the delta on each call to opCtx->checkForInterrupt, then flush the final value into the user level roll up at opCtx destruction.

            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            mira.carey@mongodb.com Mira Carey
            0 Vote for this issue
            19 Start watching this issue