I have a terminal services server that runs instances of a thick-client application and serves them up to users via RemoteApp. In order to do some capacity planning I would like to continuously log some performance counter data such as CPU usage, disk I/o, memory usage, etc, and see how it scales with the number of active sessions. Is there some kind of performance counter I can set up that counts up the number of active processes matching a particular name or path so that I can add that to a performance counter log and gather some data so that I can correlate # users vs resource usage?
There isn't an inbuilt performance counter that will do any kind of "pattern matching" on names. (Performance counters don't really work that way-- they don't take any kind of "input" parameter. They're just outputs.)
The "Processes" object tracks all running processes. I'd log the Processes object and parse the output to get a count of processes.
If each remote desktop session can be assumed to be running one instance of the application you could just track the "Active Sessions" counter in the "Terminal Services" object.
Another take would be to monitor all of the available counters for the Process object (which will show all processes). You can then key on one instance of your process. Here's a screenshot from an RDS server: