none
Display Description field per perf counter RRS feed

  • Question

  • This should be simple Q. In PwrShell I can get get some set of paths like below i.e.

    (Get-Counter -ListSet Synchronization).PathsWithInstances 

    \Synchronization(0)\Spinlock Contentions/sec
    \Synchronization(_Total)\Spinlock Contentions/sec

    ...

    then see Description for just the object.

    (Get-Counter -ListSet Synchronization).Description
    The Synchronization performance object consists of counters for kernel synchronization. The synchronization object represents each processor as an instance of the object.

    full details:

    Get-Counter -ListSet Synchronization


    CounterSetName     : Synchronization
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Synchronization performance object consists of counters for kernel synchronization. The synchronization object represents each processor as an instance of the object.
    Paths              : {\Synchronization(*)\Exec. Resource Boost Shared Owners/sec, \Synchronization(*)\Exec. Resource Boost Excl. Owner/sec, \Synchronization(*)\Exec. Resource Set Owner Pointer Shared (Existing Owner)/sec, \Synchronization(*)\Exec. Resource Set Owner
                         Pointer Shared (New Owner)/sec...}
    PathsWithInstances : {\Synchronization(7)\Exec. Resource Boost Shared Owners/sec, \Synchronization(6)\Exec. Resource Boost Shared Owners/sec, \Synchronization(5)\Exec. Resource Boost Shared Owners/sec, \Synchronization(4)\Exec. Resource Boost Shared Owners/sec...}
    Counter            : {\Synchronization(*)\Exec. Resource Boost Shared Owners/sec, \Synchronization(*)\Exec. Resource Boost Excl. Owner/sec, \Synchronization(*)\Exec. Resource Set Owner Pointer Shared (Existing Owner)/sec, \Synchronization(*)\Exec. Resource Set Owner
                         Pointer Shared (New Owner)/sec...}

    Q is, how do I display only each of the Synchronization_Total perf counter per type and with the description? My main task here is to better know how I can read any given perf counter Description. As other docs I find aren't specific to the exact counter but given more of an overview. Such as - https://docs.microsoft.com/en-us/windows/desktop/sync/synchronization-objects - also this doesn't quite achieve what I am after - https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-counter?view=powershell-5.1

    This is the list I wish to go through 1 by 1. example, what is IPI?

    \Synchronization(_Total)\Exec. Resource Boost Shared Owners/sec
    \Synchronization(_Total)\Exec. Resource Boost Excl. Owner/sec
    \Synchronization(_Total)\Exec. Resource Set Owner Pointer Shared (Existing Owner)/sec
    \Synchronization(_Total)\Exec. Resource Set Owner Pointer Shared (New Owner)/sec
    \Synchronization(_Total)\Exec. Resource Set Owner Pointer Exclusive/sec
    \Synchronization(_Total)\Exec. Resource no-Waits AcqShrdWaitForExcl/sec
    \Synchronization(_Total)\Exec. Resource Contention AcqShrdWaitForExcl/sec
    \Synchronization(_Total)\Exec. Resource Recursive Sh. Acquires AcqShrdWaitForExcl/sec
    \Synchronization(_Total)\Exec. Resource Acquires AcqShrdWaitForExcl/sec
    \Synchronization(_Total)\Exec. Resource Recursive Excl. Acquires AcqShrdWaitForExcl/sec
    \Synchronization(_Total)\Exec. Resource Attempts AcqShrdWaitForExcl/sec
    \Synchronization(_Total)\Exec. Resource no-Waits AcqShrdStarveExcl/sec
    \Synchronization(_Total)\Exec. Resource Contention AcqShrdStarveExcl/sec
    \Synchronization(_Total)\Exec. Resource Recursive Sh. Acquires AcqShrdStarveExcl/sec
    \Synchronization(_Total)\Exec. Resource Acquires AcqShrdStarveExcl/sec
    \Synchronization(_Total)\Exec. Resource Recursive Excl. Acquires AcqShrdStarveExcl/sec
    \Synchronization(_Total)\Exec. Resource Attempts AcqShrdStarveExcl/sec
    \Synchronization(_Total)\Exec. Resource no-Waits AcqShrdLite/sec
    \Synchronization(_Total)\Exec. Resource Contention AcqShrdLite/sec
    \Synchronization(_Total)\Exec. Resource Recursive Sh. Acquires AcqShrdLite/sec
    \Synchronization(_Total)\Exec. Resource Acquires AcqShrdLite/sec
    \Synchronization(_Total)\Exec. Resource Recursive Excl. Acquires AcqShrdLite/sec
    \Synchronization(_Total)\Exec. Resource Attempts AcqShrdLite/sec
    \Synchronization(_Total)\Exec. Resource no-Waits AcqExclLite/sec
    \Synchronization(_Total)\Exec. Resource Contention AcqExclLite/sec
    \Synchronization(_Total)\Exec. Resource Recursive Excl. Acquires AcqExclLite/sec
    \Synchronization(_Total)\Exec. Resource Acquires AcqExclLite/sec
    \Synchronization(_Total)\Exec. Resource Attempts AcqExclLite/sec
    \Synchronization(_Total)\Exec. Resource Total Conv. Exclusive To Shared/sec
    \Synchronization(_Total)\Exec. Resource Total Shared Releases/sec
    \Synchronization(_Total)\Exec. Resource Total Exclusive Releases/sec
    \Synchronization(_Total)\Exec. Resource Total Contentions/sec
    \Synchronization(_Total)\Exec. Resource Total Acquires/sec
    \Synchronization(_Total)\Exec. Resource Total Delete/sec
    \Synchronization(_Total)\Exec. Resource Total Re-Initialize/sec
    \Synchronization(_Total)\Exec. Resource Total Initialize/sec
    \Synchronization(_Total)\IPI Send Software Interrupts/sec
    \Synchronization(_Total)\IPI Send Routine Requests/sec
    \Synchronization(_Total)\IPI Send Broadcast Requests/sec
    \Synchronization(_Total)\Spinlock Spins/sec
    \Synchronization(_Total)\Spinlock Contentions/sec
    \Synchronization(_Total)\Spinlock Acquires/sec

    Monday, August 13, 2018 2:34 PM

Answers

  • Consider the following:

    Get-Counter -ListSet Synchronization | Format-Table description -wrap

    and

    Get-Counter -ListSet Synchronization | select -expand PathsWithInstances


    \_(ツ)_/

    • Marked as answer by Scott S Wednesday, August 15, 2018 7:22 AM
    Tuesday, August 14, 2018 10:19 AM

All replies

  • Sounds like you need to learn basic PwoerShell.

    Get-Counter -ListSet Synchronization | Select PathsWithInstances, Description

    This is something we learn on page 1 of any manual or tutorial.  id you play hooky that day?


    \_(ツ)_/

    Monday, August 13, 2018 5:18 PM
  • This does work, only thing is the output is one long line and does not fully show on the console ( I don't get why it only shows up with ... without expanding, just cuts off the text). Format shows again only 1 Description but not per path. This is an eg.

    >Get-Counter -ListSet Synchronization | Select PathsWithInstances, Description

    PathsWithInstances                                                                                                                                                                                                                                  Description
    ------------------                                                                                                                                                                                                                                  -----------
    {\Synchronization(7)\Exec. Resource Boost Shared Owners/sec, \Synchronization(6)\Exec. Resource Boost Shared Owners/sec, \Synchronization(5)\Exec. Resource Boost Shared Owners/sec, \Synchronization(4)\Exec. Resource Boost Shared Owners/sec...} The Synchronization per...

    >Get-Counter -ListSet Synchronization | Select PathsWithInstances, Description | Format-List

    PathsWithInstances : {\Synchronization(7)\Exec. Resource Boost Shared Owners/sec, \Synchronization(6)\Exec. Resource Boost Shared Owners/sec, \Synchronization(5)\Exec. Resource Boost Shared Owners/sec, \Synchronization(4)\Exec. Resource Boost Shared Owners/sec...}
    Description        : The Synchronization performance object consists of counters for kernel synchronization. The synchronization object represents each processor as an instance of the object.



    • Edited by Scott S Tuesday, August 14, 2018 8:52 AM
    Tuesday, August 14, 2018 8:52 AM
  • Consider the following:

    Get-Counter -ListSet Synchronization | Format-Table description -wrap

    and

    Get-Counter -ListSet Synchronization | select -expand PathsWithInstances


    \_(ツ)_/

    • Marked as answer by Scott S Wednesday, August 15, 2018 7:22 AM
    Tuesday, August 14, 2018 10:19 AM
  • Thanks for the assistance, those do both work again but it appears I only see one Description which only matches exactly to Synchronization. Perhaps that is the only Description covering all those sub objects?

    Get-Counter -ListSet Synchronization | Format-Table description -wrap

    Description
    -----------
    The Synchronization performance object consists of counters for kernel synchronization. The synchronization object represents each processor as an instance of the object.

    It would be good if I could know more about some of those exact paths like these (taken from above.)

    \Synchronization(_Total)\Exec. Resource Total Re-Initialize/sec
    \Synchronization(_Total)\Exec. Resource Total Initialize/sec
    \Synchronization(_Total)\IPI Send Software Interrupts/sec
    \Synchronization(_Total)\IPI Send Routine Requests/sec

    Tuesday, August 14, 2018 2:06 PM
  • The description is for the set.  The counters do not have a description.


    \_(ツ)_/

    Tuesday, August 14, 2018 3:50 PM
  • It would be good if I could know more about some of those exact paths like these (taken from above.)

    Those are all computer engineering terms. A study of that and research into how a computer and the OS work will help you to understand the meaning of the terms. Some are self-explanatory.

    Here is a starter: https://docs.microsoft.com/en-us/windows/desktop/sync/synchronization-objects


    \_(ツ)_/

    Tuesday, August 14, 2018 3:56 PM
  • Ok thanks for the help. I found that link before posting here, was looking around to find more details elsewhere. Someone will know as someone had to add these things into the OS.
    Wednesday, August 15, 2018 7:27 AM
  • We know but we don't have time to give you a personal 4 hour tutorial when you can read the information yourself.


    \_(ツ)_/

    Wednesday, August 15, 2018 8:59 AM
  • Never asked you to.
    Tuesday, August 21, 2018 9:36 AM