Enterprise Performance Analysis
Over the past several weeks I have been working on performance & scaleability issues across multiple systems in our Enterprise. We have a mix of Legacy Systems, e-Commerce, MRP, DRP, BizTalk 2002, .NET Applications, and Sql Server 2000 that perform a range of business and EAI functions. Once you add network monitoring, and the use of SAN and NAS devices for storage you end up with a potpouri of analysis challenges.
As a result, in order to identify opportunities to scale or tune, you must understand both the individual systems' performance, as well as how they affect the Whole enterprise. This has been quite a challenge for me, since my primary problem-domain has traditionally been restricted to the applications or servers on an individual Windows-based system.
Lately, I have started learning how to setup Windows Performance Counters, Create Perf Logs, Monitor live and recorded sessions, and Interpret the results. There is way too much to try and blog about right now, but here are some useful articles I have found helpful:
General Performance Analysis:
- Determining acceptable values for counters
- Overview of Performance Monitoring
- Evaluating Memory and Cache Usage
- Analyzing Processor Activity
- Examining and Tuning Disk Performance
- Measuring Multiprocessor System Activity
- Monitoring Network Performance
- Detecting Processor Bottlenecks (old but useful!)
Sql Server:
BizTalk:
- BizTalk Server 2002 ~ Performance and Scalability; Optimizing Registry Settings
- INFO: Performance Limitations of BizTalk Application Integration Components That Are Written in Visual Basic
.NET Related Topics
- ASP.NET Performance Monitoring, and When to Alert Administrators
- .NET Framework General Reference: Performance Counters
- Marissa's Guide to the .NET Garbage Collector
- Garbage Collection—Part 2: Automatic Memory Management in the Microsoft .NET Framework
- Writing Faster Managed Code: Know What Things Cost
- Writing High-Performance Managed Applications : A Primer
- Performance Optimization in Visual Basic .NET
- BUG: Performance Counters for SQL Server .NET Data Provider Are Not Reset
- Connection Pooling for the .NET Framework Data Provider for SQL Server
- SqlClient Connection Pooling Exposed - Reflection allows .NET developers to peer into the internals of SqlClient
- Swimming in the .NET Connection Pool
- The .NET Connection Pool Lifeguard