Looking at indicators at 3 levels (Business, Service and Component) we will be concentrating on a current client that we provide performance engineering and capacity planning services for and how we go about correlating Business, Service and Component indicators to make them useful in capacity planning.
Indicators can be identified at 3 different levels of capacity management: Business, Service and Component.
Component level – Looking at individual infrastructure elements of IT. We use this to ensure there is enough component capacity. You don’t just add more components to increase capacity. Performance tuning can be adopted.
Service Level – Looking at a service i.e. an email service or telecommunications service. SLA’s use service indicators to meet the requirements.
Business Level – Looking at the demand for the business and to ensure the business can meet the demand with supply.
It is sometimes difficult to differentiate between business indicators and service indicators.
Pattern of Business Activity are captured by every business. Depending on the industry the business resides in these may be different. Types of indicators that would fall under Pattern of Business Activity are number of sales/month, number of orders/month etc.
Service Level Indicators may or may not be captured by every business. Types of indicators that would fall under Service Level are number of searches/second, requests/sec, transactions/sec etc.
Component metrics may or may not be captured by a business depending on their performance management maturity. When collecting component metrics there are a number of different tools that you can use. With one of our clients whose architecture sits on Windows OS we use Performance Monitor (found on all Windows machines). This allows us to collect hundreds of component level metrics. However how do we know what metrics are useful and which are not? >It is usually extremely difficult to map component metrics to patterns of business activity without any service indicators.
The main component metric that we focus on is usually % CPU Processor time as other load-related metrics are usually directly correlated with this. With a direct relationship if the processor % CPU time increases it is likely other metrics increase such as Processor Queue Length.
Therefore in this example %CPU Processor time would be a component metric.
There are many key performance metrics that you should keep your eye on; below is a list of some of the main metrics that we make use of for this client:
- %Processor Time – CPU Utilization on the system
- Processor Queue Length – Messages in processor queue waiting to be processed
- Available Mbytes – The amount of free physical memory
- Physical Disk
- Disk Reads/sec – Number of reads to disk per second, using Disk Writes/sec as well
- Disk Writes/sec - Number of write to disk per second, using Disk Reads/sec as well
- Current Disk Queue Length – The size of the disk queue at a point in time
- Working Set – Memory that is being accessed regularly
.Net Specific Metrics
- .Net CLR LocksAndThreads
- Contention Rate/sec – Rate at which threads fail at attempting to secure a managed lock
- .NET CLR Memory
- # Bytes in all Heaps – The amount of memory allocated in all the different heaps
- % Time in GC – The time spent in garbage collection since the last garbage collection cycle
- SQL Server: Buffer Manager
- Buffer Cache Hit Ratio – Ratio of page hits to number of cache lookups
- Page Life Expectancy – The number of seconds a page will stay in the buffer pool
- SQL Server: SQL Statistics
- Batch requests/ sec – The number of SQL queries that are being executed every second
- SQL Server: Database
- Transactions/sec – The number of transactions that are being executed every second
- Active Transactions – Number of active transactions at the database
Service Level Indicators
Perfmon can also capture service level indicators; however we usually capture many of these from our load generating tool. In this case from LoadRunner we can take transactions per second and we can also calculate service times using the formula S= λ/L where S = Service Time, λ = Throughput and L = Load. This formula is what links component metrics with Patterns of Business Activity. For this client we also have some custom perfmon metrics to give us service indicators such as:
- Service Transactions/sec
- Response times/sec
- Request Execution Time
- The time in ms it took to execute the last request
Patterns of Business Activity
These are business indicators that are set and captured by the business; they define the activity of the business. A change in service indicators would have a direct impact on the Business but a change in a component metric may not have a direct correlation to Business Activity.
Using our example of a low-cost airline carrier who rely on an e-commerce system for business, their business indicator would be the demand that they have on their system, i.e. number of searches or number of bookings.
If we apply this methodology to our example we can show how we correlate the indicators together that would help us in Capacity Planning.
Discover how capacity and performance management can maximise revenue potential - download our primer here.