258 CHAPTER 10 (Cheap web hosting) JAVA EE PERFORMANCE ASSESSMENT
258 CHAPTER 10 JAVA EE PERFORMANCE ASSESSMENT Once you understand the expected performance of your application, put the proper monitoring frameworks in place, build a representative production staging environment, and have an accurate load generation tool, then you are ready to begin your performance assessment. Process The implementation process of a performance assessment for a preproduction environment and for a live production environment is different. In a preproduction environment, you maintain control of the load, the user ramp-up time, and the user behavior, whereas in a production environment, the user maintains control of these factors. Furthermore, in a preproduction environment you are free to generate as much load on the system as necessary, including monitoring overhead, but in a production environment, you want to gather valuable information without your users noticing performance degradations. The latter sections of this chapter describe the best-practice strategies for obtaining performance information, both from a preproduction environment and a production environment. But regardless of how you capture the data, the goal is to obtain performance statistics at each relevant point in your environment, including statistics from inside your application, while users (either synthetic or real) are actively using your application. Analysis With performance statistics in hand, your goal is to transform this raw data into derived business values. For example, a saturated thread pool with pending requests is a raw value, but the interpretation that pending requests equates to waiting users, and hence the degradation of service request response times can be applied as a business value to your company, for example: The result of the undersizing of this thread pool is that business processes cannot satisfy their SLAs, which puts the company in violation of its contractual obligations. Sometimes people especially technical people get caught up in low-level details, without taking the time to understand the business implications. In the past, I have spent time implementing features that are cool, but do not satisfy consumer demand, and I have spent time tuning complicated functionality that is seldom accessed. But as the Java EE system administrator, you need to understand both the technical implications of performance statistics and how those implications affect your company s business processes. Furthermore, you need to be able to articulate the business process implications in a performance assessment report to your superiors, to provide them with enough information to make business-level decisions (for example, whether functionality ABC takes priority over functionality XYZ). Interpreting raw statistics and assessing their impact on business process is somewhat of an art and is dependent on your specific application and environment. In this chapter, I provide general guidelines detailing how to interpret direct metrics as well as how to interpret the implications of abnormal application behavior, or indirect metrics. Through this analysis you can accurately assess the health of your enterprise environment. Mitigating Performance Overhead As mentioned earlier, by merely observing a system, we affect its behavior. As such, every monitoring tool needs facilities to control the level of observable impact it subjects its environment to. As a precursor to learning about preproduction and production monitoring strategies,
Note: If you are looking for cheap and reliable webhost to host and run your mysql application check mysql web server services.