Access Logging Oracle HTTP Server Logging Options

Oracle HTTP Server Performance Tuning 5-11

5.5.1 Analyze Static Versus Dynamic Requests

It is important to understand where your server is spending resources so you can focus your tuning efforts in the areas where the most stands to be gained. In configuring your system, it can be useful to know what percentage of the incoming requests are static and what percentage are dynamic. Generally, you want to concentrate your tuning effort on dynamic pages because dynamic pages can be costly to generate. Also, by monitoring and tuning your application, you may find that much of the dynamically generated content, such as catalog data, can be cached, sparing significant resource usage.

5.5.2 Beware of a Single Data Point Yielding Misleading Results

You can get unrepresentative results when data outliers appear. This can sometimes occur at start-up. To simulate a simple example, assume that you ran a PLSQL Hello, World application for about 30 seconds. Examining the results, you can see that the work was all done in mod_plsql.c: ohs_serverohs_modulemod_plsql.c handle.maxTime: 859330 handle.minTime: 17099 handle.avg: 19531 handle.active: 0 handle.time: 24023499 handle.completed: 1230 Note that handle.maxTime is much higher than handle.avg for this module. This is probably because when the first request is received, a database connection must be opened. Later requests can make use of the established connection. In this case, to obtain a better estimate of the average service time for a PLSQL module, that does not include the database connection open time which causes the handle.maxTime to be very large, recalculate the average as in the following: time - maxTimecompleted -1 For example: 24023499 - 8593301230 - 1 = 18847.98

5.5.3 Beware of Having More Modules

Oracle HTTP Server, which is now based on Apache 2.2, has a slight change in architecture in the way the requests are handled, compared to the previous release of Oracle HTTP Server, which was based on Apache 1.3. In the new architecture, Oracle HTTP Server invokes the service function of each module that is loaded in the order of definition in httpd.conf file until the request is serviced. This indicates that there is some cost associated with invoking the service function of each module, to know if the service is accepted or declined. Because of this change in architecture, consider placing the most frequently hit modules above the others in the httpd.conf file. Finally, for the static page requests, which are directly deployed to Oracle HTTP Server and served by the default handler, the request has to go through all the modules before the default handler is invoked. This process can impact performance of the request so consider enabling only the modules that are required by the deployed application. Example, if mod_plsql is never used by the deployed application, disable it to maintain performance.