CHAPTER 10 (Web file server) JAVA EE PERFORMANCE ASSESSMENT
CHAPTER 10 JAVA EE PERFORMANCE ASSESSMENT Preparing the production environment Assessing usage patterns Evaluating critical mass Determining user load Recording metrics We examine each task in more detail in the sections that follow. Preparing the Production Environment You need to prepare either a mirrored or scaled-down version of your production environment to test against. From a mirrored environment, you can assess the exact behavior of your production environment without requiring extrapolation, but from a scaled-down version, you will have to extrapolate the performance of the preproduction environment to the production environment. As a general rule here, as with everything in your job, make your work as easy as possible! Unless it is completely unavoidable, do not try to test an application in JBoss on a single-CPU Intel machine running Linux when the application is destined to be deployed to WebLogic on a quad-processor Sun machine running Solaris. Doing so will make your extrapolations synthetic and error-prone. The best strategy is to attempt to make the extrapolations as linear as possible. To do this, try to build a test environment with the same class of machines as in your production environment and with an evenly divisible number of machines and/or CPUs. For example, if your production environment consists of eight machines in the application server tier, then two of the same machines could suffice in your preproduction environment. Furthermore, if your production environment has eight CPUs in each machine, then two or four might suffice in preproduction (it s trickier to extrapolate performance projections about CPUs than the number of machines). The point is that if you scale down the number of machines and CPUs evenly, then your extrapolations will be easier to perform and less error-prone. Note When you read linear here, keep in mind that there is no such thing as true linear extrapolation in enterprise environments. While one machine may service 200 users, it does not necessarily mean that two machines can service 400 users, because with a second machine you have potentially introduced additional state replication across your network as well as remote resource references (such as accessing a cached entity bean residing on a different machine). Extrapolation is a difficult process, especially when network communications are involved, and there is no single reliable formula to help you, because the variables that impact scalability include your availability and failover implementations, replication strategy, replicated object size, hardware and network configuration, and mix and configuration of horizontal and vertical servers. In practice, you can derive this extrapolation value with your own tests and be equipped to more accurately estimate through scaled-down observations than with any formula I could provide you.
Searching for affordable and proven webhost to host and run your servlet applications? Go to Linux Web Hosting services and you will find it.