31 3 / 2008
Performance Testing 101: Identify bottleneck points to monitor [performance/tips]
Outside of building your LoadRunner scripts, debugging your fails, and stepping through the tedium of mind-numbing correlation, there is test execution. And as you well know, test execution is where all the real fun begins. In my history, I’ve enjoyed the luxury of sitting side by side with the system admin, configuring the performance monitor and network monitors accordingly, while running single user “smoke tests” on my scripts to ensure that proper metrics are gathered. It was a matter of crossing my “t” and dotting my “i” one timid script at a time. Since that happen some year or two ago, I went digging through some of my notebooks and I found a few tips to share. Moreover, I found a few points of interest when looking for potential bottlenecks before a performance test, especially when setting up PerfMon (simply called Performance now) on an IIS server.
Baselines
Always gather your baselines on the server first, if at all possible. If you have this privilege, then start up Performance Monitor and gather the following counters:Environment baselines. Identify any deviation from the normal.
- System\Processor Queue length
- Memory \ Committed Bytes
- TCP\Segments Retransmitted per Second
- IP\ Datagrams Received / Discarded
Monitors
Use the counters in PerfMon during your test execution to log some real numbers.- LogicalDisk\% Free space
- PagingFile\ % Usage
- Memory \Pages per Second and Processor \% Processor Time
These are just a few of the monitor counters I have used during performance, load or stress tests. Outside of the IIS server environments, I use rstat to gather similar monitor counters, and with the IP address, I plug those numbers directly into the LoadRunner monitor dashboard. I also recently discovered that you can use rstat with NeoLoad from Neotys. As a side note, NeoLoad is still on my radar and I’m still reviewing this performance powerhouse so that I can blog about it in the future.