DevPortal

What are the various Network Parameters? How do I manage them and for what?


Table of Contents


Where are the parameters for enhancing network performance specified?

The parameters explained in the following sections are tuned to enhance the network performance. The network parameters are specified in the socket-properties tag.

How do I adjust Packet Sizes with Traffic?

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.

Enabling Nagle’s Algorithm

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.

How do I Release Sockets for Reuse?

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.

The idle-timeout-millis tag

The 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:

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.

What is Buffer Size? How do I manage it for sending data?

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.

How do I manage Buffer Size for receiving data?

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:

What is Thread Funneling? How do I manage it?

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.

What is Worker Thread Count? How do I use it?

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.

Request Processing

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.

File I/O

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.

Network

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.

KeepAlive Waits

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.

What does 'Threshold for Service Unavailable' mean?

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