Common Symptoms and the Problems That Cause Them


Several main symptoms can arise when you monitor an application, and each is indicative of different problems that may occur. We describe these symptoms in the following sections.

Its important to remember that your application may be suffering from more than one of these problems at the same time. This points to the importance of continuous measurement of metrics, which really is the only way youll recognize unusual and unexpected behaviors in your application.

Low CPU, Low Requests per Second

This problem is commonly representative of an application thats taking unnecessary locks. Remember that some APIs or libraries may take locks that you arent aware of. A good way of identifying the problem is using a profiler. This should make it easy for you to pinpoint exactly where your threads are getting blocked.

High CPU, Low Requests per Second

This problem is usually caused by inefficient code (e.g., infinite loops ). However, its also possible that this problem is occurring because your application simply requires more CPU power (i.e., its a processor- intensive application). The difference between the two scenarios is best seen from the results of regular testing. Did your last change involve significant changes in processing, or was it supposed to be just a bug fix?

Low Requests per Second, High Network Usage

This problem usually indicates that your network is incapable of handling the load. In some cases, it might indicate inefficient network usage. Its important that you try to simulate the network traffic expected in the production environment to get a feel for how your application will perform (particularly if it isnt the only application using the network).

Low Requests per Second, High Database Usage

This problem usually indicates that your database is incapable of handling the load or that your application is accessing the database in an inefficient manner. Again, regular testing is required to easily tell the difference. Its important that you have a database expert examine your database queries and table structure to ensure that theyre efficient. Its also important that you choose a database system capable of handling the expected load.

Low CPU, High Requests per Second

This isnt usually a serious problem, especially if you havent completed the processing code for your application or youre expecting rapid expansion in your applications capabilities. You should check that your application is working as expected (it may be that the application is just returning errors, hence the excellent performance). Also, before you lower your system requirements, be sure to check that your application doesnt require the extra processing power for processing unusual requests (there are many types of applications that have very high-burst CPU requirements, although their average requirements are very low).




ATL Server. High Performance C++ on. NET
Observing the User Experience: A Practitioners Guide to User Research
ISBN: B006Z372QQ
EAN: 2147483647
Year: 2002
Pages: 181

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net