These tips for web administrators and authors will improve your web server performance.
- Follow z/OS UNIX tuning guidelines, especially those relating to placing modules in LPA. Program load I/O can seriously degrade response time for web requests. Configure your web server libraries in the linklist or LPA and avoid STEPLIBs. Be sure to thoroughly test your code before it is added to linklist. Put reentrant CGI programs and DLLs in LPA after they have been debugged.
- Configure your HFS and RACF data sets on cached DASD with the DASD fast write feature enabled.
- Preload frequently referenced pages into RAM cache with the CacheLocalFile directive or, if you are using OS/390 V2.7, use the new Fast Response Cache Accelerator (FRCA).
- Be certain that the UIDs and GIDs for the web content files are valid, otherwise lengthy searches of the RACF data base occur.
- Use HEAPPOOLS(ON), which is abbreviated HEAPP(ON), in all of your web server JCL Procedures. This is a Language Environment parameter.
- Do not execute production web servers from the OS/390 UNIX shell unless the WLM Policy or IEAICSxx and IEAIPSxx are configured to provide adequate resources and priority. A web server that is run from a UNIX shell inherits the performance specifications of the address space that started it. Normally, TSO or Telnet address spaces are defined with multiple performance periods, and only the first period has adequately high priority.
- Eliminate all extraneous statements in the httpd.conf web server cofiguration file. Nearly all of the statements in this file must be parsed every time a request is made to the web server. Map, Pass, Service, and Redirect statements are especially expensive. Redirect statements cause the web server to instruct the browser to send a request to another server. This results in two requests for each URL.
- Specify Pass, Exec, and other mapping directives in the most probable match sequence to shorten directory searches. When there are fewer directories in the pathname there are fewer directory lookup operations.
- Specify UseACLS NEVER and UseMetaFiles OFF in the httpd.conf file unless you are exploiting these operations.
- Specify Imbeds OFF in your httpd.conf file if you are not using Server Side Include (SSI). SSI causes the web server to parse every byte of HTML text to search for SSI directives. This requires considerable CPU time.
- Unless you specifically need this information, turn off SMF Type 92 records. SMF Type 92 records are created each time an HFS file is opened, closed, deleted, etc. Almost every web server request references HFS files, so thousands of SMF Type 92 records are created.
- If you use SSL, be sure that you have Domino Go Web Server 5.0 or higher with the following PTFs installed: PQ19981, PQ22108, and OW36159. IBM recommends that if your processor supports hardware cryptography, it should be enabled. This can reduce CPU time required for SSL requests by up to 80%.
- If you use the WLM Web Server configuration (Scalable Web), set a velocity goal for the web server. If persistent sessions are enabled, all requests in the same session are executed under the same WLM enclave. This makes the RMF response time and resource data difficult to interpret. You can turn off persistent sessions by setting the MaxPersistRequest directive to 1.
- Pre-start WLM Queue Server address spaces to avoid long response times for the initial requests.
Communicate this advice to the people who are authoring your web pages:
- Create web pages with as few files as possible. Every graphic or HTML file generates a new request to the web server.
- Specify the height and width of all graphics in your HTML text so that the browser can load the page before the graphics files have been sent. If you omit the height and width, the browser waits for each graphic to load before it can display the rest of the web page.
- Verify all links in your HTML files. Misspelled or missing pathnames cause web server suffix processing which is VERY expensive. If the web server cannot find your URL, it attempts to find a match by appending every known suffix (htm, txt, text, etc.), and searching the file system for a file with that name. If the web server manages to find the file, you may not realize that this search is occuring.