Over the weekend, Gary made an application change to the corporate database. Sadly, Monday was a bad day for him. While the database exhibited the same CPU usage, it was consuming ten percent more memory and doing 1000 more I/Os per second; the system was paging.
The Challenge of Today’s Applications
As applications become more critical to business success, they are also more complex and changing at an increasing rate. Even so, users demand optimal application performance at all times. When it is compromised, customers are disappointed, corporate reputations are tarnished, and employees are less productive. Therefore, despite the challenges, an application modification should never cause a performance issue in a production environment. Too much is at stake.
Application Monitoring in a Test Environment
When the data collected is displayed in a dashboard, it allows you to see the performance before and after you made the change and assess its impact.
To avoid such disasters, if you make a change to an application, you should first take it for a spin in a test environment. That grouping of IT assets should be monitored 24/7/365 with an infrastructure performance management (IPM) for CPU and memory usage, throughput, IOPs and more. When the data collected is displayed in a dashboard, it allows you to see the performance before and after you made the change and assess its impact.
This process enables you to determine if the alteration will cause performance issues before you put it into a live environment.
Had Gary monitored his test environment around the clock and checked his application change there, he would have known that it would cause a negative impact on performance. Then he could have dug deeper to answer two important questions:
- Is there a bug in the application?
First, Gary wants to know if the code is working efficiently. If he reviews it and identifies a bug that’s gobbling up memory unnecessarily, he can fix it before making the change in a production environment.
- Do we need more computing resources?
Perhaps Gary verifies that the application is working as designed. Based on performance, however, he now knows it’s going to do 1000 more I/Os per second and to accommodate it, they need 10% more memory.
Gary can now present his forecast to the operations folks, “Two weekends from now, we want to push this change to production. It’s going to take 10 percent more memory and do 1000 additional I/Os a second. Can the production server handle that?”
The system administrator, who is monitoring the production environment, would say, “You can’t put that up because we’re already right at the memory limit. If you put that change in, you’re going to push us over the hill, and we’re going to start paging. We either need to add memory to that machine, or we need to virtually move you over to another one that has memory available so your application can run smoothly.”
Thus, using an IPM tool in a test environment will help you identify performance issues and determine the resources you require. It provides a forecast for your computing needs that you can provide to your system administrators. This projection enables them to plan ahead, making necessary changes, so you don’t end up in a firefighting mode when the change goes live.