Content negotiation
Restrict content negotiation to those contexts where it is needed.
This topic provides information about how to manage your HTTP Server performance.
There are several things that can affect your server's performance. Consider the following performance related topics:
Enabling the HTTP Server's local cache can result in better performance and system throughput by caching (in memory) frequently accessed files. You can configure several settings associated with the local cache.
To configure the local cache settings, do the following:
Enter or select options from this form. After you are finished, click OK.
Including file names in Files to cache when server is started causes the files to be loaded into the server's memory when the server is started.
What to cache allows you to specify what information is included in the cache.
Enter or select options from this form. After you are finished, click OK.
Each time your server receives a client request, the server first checks to see if any threads are available and then uses available threads to process the request. If no threads are available, it holds the request until threads become available. When a request ends, the server threads become idle (at which point they are available for the server to use again).
Setting the maximum number of active threads too high can cause a decrease in system performance. You can experiment with lowering the maximum number of active threads until you see no affect on system performance. A good starting point would be half of the previous setting. For example, if you had the maximum number of active threads set to 100, try setting it to 50. Lowering the maximum number of active threads directive might result in an increased number of rejected connections when the server reaches its capacity.
To change the number of threads to process requests, do the following:
Enter or select options from this form. After you are finished, click OK.
Every time the server needs to request a DNS lookup, there may be a delay while the DNS server is contacted. Limit the use of DNS lookups. Consider logging IP addresses and using a log analysis tool that does DNS lookups.
Server performance can be impacted when server-side includes are processed. Limit the use of server-side includes except where needed.
Try to organize your document tree into a flat broad tree structure rather than a narrow deep tree structure. The fewer directory levels the better.
For better performance, store static and Net.Data® files in the root (or /) file system. Avoid placing static and Net.Data files in the QSYS and QDLS file systems.
Server performance is impacted if the server must look for and open .htaccess files. If the AllowOverride directive is set to None, the server does not look for .htaccess files. If AllowOverride is set to All, there is a significant performance impact as the server looks for .htaccess files in every directory.
If you create separate log files for each virtual host, you should consider that a file descriptor is opened for each log file. Opening too many file descriptors can impact system performance.
The connection time-out determines the number of seconds the server waits for a subsequent request before closing a persistent connection. Enabling persistent connections increases the throughput of your server. Consider decreasing the connection time-out if you have simple pages without images.
To set this value, do the following:
Logging server activity does impact server performance. Try to do as little error and access logging as required.
CGI programs should be run in a named activation group to get the best performance. Also determine what CGI jobs your server generally uses. Use the StartCGI and StartThreadedCGI directives to start those jobs when the server starts. Use the QTMHHTP1 user profile to run CGI requests. If you must use a different user profile, use a "dummy" user profile (a user profile that is not allowed to sign-on) instead of %%CLIENT%%.