A clearly defined plan for achieving your performance objectives is essential for deciding what to trade for higher performance.
To maximize performance, you must monitor, analyze, and tune all the components that are used by your applications.
Performance tuning usually involves a series of trade-offs. After you have determined what is causing the bottlenecks, modify performance in some other areas to achieve the expected results. However, if you have a defined plan for achieving your performance objectives, the decision on what to trade for higher performance is easier.
The Fusion Middleware components are built for performance and scalability. To maximize the performance capabilities of your applications, you must build performance and scalability into your design.
The performance plan should address the current performance requirements, the existing issues, such as bottlenecks or insufficient hardware resources, and any anticipated variances in load, users, or processes. The performance plan should also address how the components scale during peak usage without impacting performance.
Before you can begin performance tuning your applications, you must first identify the performance objectives you hope to achieve. To determine your performance objectives, you must understand the applications deployed and the environmental constraints placed on the system.
Performance objectives are limited by constraints, such as:
The configuration of hardware and software such as CPU type, disk size, disk speed, and sufficient memory.
There is no single formula to determine your hardware requirements. The process of determining what type of hardware and software configuration is required to meet application needs adequately is called capacity planning.
Capacity planning requires assessment of your system performance goals and an understanding of your application. Capacity planning for server hardware must focus on maximum performance requirements.
The configuration of high availability architecture to address peak usage and response times. For more information on implementing high availability features in Oracle Fusion Middleware applications, see Introduction and Roadmap in Oracle Fusion Middleware High Availability Guide.
The ability to interoperate between domains, use legacy systems, support legacy data.
Development, implementation, and maintenance costs.
Understanding these constraints-and their impacts-ensure that you set realistic performance objectives for your application environment, such as response time, throughput, and load on specific hardware.
Before you begin to deploy and tune your application on Oracle Fusion Middleware, it is important to clearly define the operational environment. The operational environment is determined by high-level constraints and requirements such as:
Whether you are designing a new system or maintaining an existing system, you should set specific performance goals so that you know how and what to optimize. To determine your performance objectives, you must understand the application deployed and the environmental constraints placed on the system.
Gather information about the levels of activity that application components are expected to meet, such as:
Anticipated number of users
Number and size of requests
Amount of data and its consistency
Target CPU utilization
Application developers, database administrators, and system administrators must be careful to set appropriate performance expectations for users. When the system carries out a complicated operation, response time is slower than while performing a simple operation.
For example, ensure that 90% of the response time is not greater than 5 seconds and the maximum response time for all is 20 seconds. Usually, it's not that simple. Application may include various operations with differing characteristics and acceptable response time. Set measurable goals for each of these operations.
Determine how variances in the load can affect the response time. For example, users might access the system heavily between 9:00 am and 10:00 am and then again between 1:00 pm and 2:00 pm, as illustrated by the graph in Figure 3-1. If the peak load occurs regularly, for example, daily or weekly, it is advised to configure and tune systems to meet the peak load requirements. Accessing application in off-time gives better response time than accessing it during peak-time. If your peak load is infrequent, higher response times at peak loads must be expected for the cost savings of smaller hardware configurations.
Figure 3-1 Adjusting Capacity and Functional Demand
With clearly defined performance goals and performance expectations, you can readily determine when performance tuning has been successful. Success depends on the functional objectives that you have established with the user community, your ability to measure whether the criteria are being met, and your ability to take corrective action to overcome any exceptions.
Ongoing performance monitoring enables you to maintain a well-tuned system. Keeping a history of the application's performance over time enables you to make useful comparisons. With data about the actual resource consumption for a range of loads, you can conduct objective scalability studies and from these reports predict the resource requirements for anticipated load volumes. For details on Monitoring, see,Monitoring.
The key to good performance is good design. The design phase of the application development cycle should be an on-going process. Cycling through the planning, monitoring and tuning phases of the application development cycle is critical to achieving optimal performance across Fusion Middleware deployments. Using an iterative design methodology enables you to accommodate changes in your work loads without impacting your performance objectives.
Oracle Fusion Middleware provides a variety of technologies and tools that can be used to monitor server and application performance. Monitoring enables you to evaluate the server activity, watch trends, diagnose system bottlenecks, debug applications with performance problems and gather data that can assist you in tuning the system.
Performance tuning is specific to the applications and resources that you have deployed on your system. Some common tuning areas are included in Top Performance Areas.