![]() |
|
The parameters explained in the following sections are tuned to enhance the network performance. The network parameters are specified in the socket-properties tag.
Nagle's algorithm is used to reduce the network traffic by optimizing the packet size being transferred over the network. The values can be modified by editing web-config.xml file or by setting values through the Console. Log on to the Console and select Configure > Web Server and click Edit in the Socket Properties section.
tcp-no-delay indicates whether to enable Nagle's algorithm or not. Default value is Yes and can be modified as:
Note: For a large response, use a suitable application buffer management that significantly improves performance over Nagle's algorithm. Refer to RFC 896 for a detailed discussion on Nagle's algorithm.
Socket creations and destruction for each request is one bottleneck while serving Web requests. Using the same socket for subsequent request through persistent connection increases performance. HTTP1.1 protocol mandates support of persistent storage.
idle-timeout-millis tag in web-config.xml indicates the time for which a socket is kept waiting for subsequent requests before being closed.
<idle-timeout-millis>-1</idle-timeout-millis>
The default value is -1 milliseconds (that is, infinite). It can be modified as:
idle-timeout must be high to ensure that any subsequent request from the same client is processed without creating a new socket.false, or HTTP1.0 protocol is being used, set idle-timeout to a lower value.For a Web site with a number of embedded frames and images referred from main page, pipelining is used. Higher value of the idle-timeout parameter improves the performance. For a Web site having more textual information with a few embedded requests, this parameter value should be lower.
Buffer size indicates the size used to write response data to the client. This option is used by the networking code for the platform to set the underlying network I/O buffers, accordingly. Increasing buffer size can increase the performance of network I/O for high-volume connection, and decreasing the size can reduce backlogging of incoming data.
This value can be changed by editing the <send-buffer-size-bytes> tag in the web-config.xml, or by editing the value using the Console and making it available at runtime. To edit the value using the Console, select Configure > Web Server and click Edit in the Socket Properties section. The default value is 8192 bytes.
If the size of a response to a client is 10K or more, set this parameter size to 8K to increase the performance of the application.
The networking code for the platform uses the buffer size to set the underlying network I/O buffers.
The attribute <received-buffer-size-bytes> indicates the buffer size used to receive request headers and body information from client. This value can be changed by editing web-config.xml or by editing the value using the Console and making it available at runtime. To edit it using the Console, select Configure > Web Server and click Edit in the Socket Properties section. The default value is 8192 bytes. It can be modified as:
Thread funneling is pluggable and can be tuned to boost response time. For more information, read Extreme Threading. Tunable parameters for thread funneling are explained in the following sections.
Worker thread count represents the maximum number of requests that can be processed concurrently by the Web container. In web-config.xml, the tag appears as:
<thread-funnel worker_thread_count="50" enabled="false">
The default value is 50, minimum value is 1, and any non-negative value can be set as maximum value.
The request processing cycle is divided into processing portions called activities depending on the type of resource. Each tunable property represents an activity in the Web request processing cycle. Request processing is a CPU intensive activity. In web-config.xml, the tag appears as:
<activity-type name="request_processing" num="10"/>
The default value is 10, minimum value is 1, and maximum value is the value specified in the worker_thread_count tag.
The activity File I/O represents the file I/O intensive part of the Web request. In web-config.xml, the tag appears as:
<activity-type name="file_io" num="30"/>
The default value is 30, minimum value is 1, and maximum value is the worker_thread_count.
The activity Network represents network I/O intensive part of the Web request. In web-config.xml, the tag appears as:
<activity-type name="network_io" num="30"/>
The default value is 30, minimum value is 1, and maximum value is the worker_thread_count.
The activity KeepAlive Waits represents file I/O intensive part of the Web request. In web-config.xml, the tag appears as:
<activity-type name="keepalive_waits" num="40"/>
The default value is 40, minimum value is 1, and maximum value is the worker_thread_count.
Thread funneling framework can be tuned to send service unavailable response if the number of waiting threads at the CPU is greater than the value set in the following tag in web-config.xml:
<service_unavailable_threashold num_waiting="20"/>
| © Pramati Technologies 2007 | Runs on Pramati Server | Feedback | Legal |