Identify Processes By Instance Name

When you use the system built-in utility Perfmon.exe to monitor multiple instances of the same process and you have more than one instances of the same executable file running at the same time, you have probably noticed that Perfmon.exe differentiates the process by giving them an arbitrary numbered name, for example ApisHive, ApisHive#1 and ApisHive#2. This behavior is most likely not what you would expect, since it is not very clear which process responds to which ApisHive instance you started, and the random numbers change every time you restart your ApisHive instances.

PerformanceBee improves this by adding the instance name to the process name, such as ApisHive_apishiveinstance, ApisHive_anotherinstance, where ApisHive is the process name(executable file name) and apishiveinstance is the instance name. This works even after you restart your ApisHive instances.

Now only ApisHive instances are identified in this way.

To support this, there are some configurations need to be done:

On target machine(machine being monitored):

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance\ProcessNameFormat set to 2. (DWORD)

  • Service named RemoteRegistry is running.

  • ApisHive instances are running using different names.

  • The monitoring account (usually a domain account, which is also used to launch the PerformanceBee on the monitoring machine) is added into user group “Performance Log Users” and “Performance Monitor Users”

  • The monitoring account is allowed in WMI\Root\CIMV2\Securities (use WMI Control snapin, wmimgmt.msc)

On monitoring machine:

  • The monitoring account(the account that launched PerformanceBee) can be added to related user groups on target machine.