Home | Previous Page | Next Page   Tuning Configuration for Resource Usage > Tuning CPU-Management Parameters >

Tuning Virtual Processors to Manage Network Poll Threads

The NETTYPE database server configuration parameter specifies the poll thread configuration for each network connection type that the database server allows, as specified in the sqlhosts file. This section describes the performance advantage of specifying NET virtual processors for network connection polling.

Tip:
Arguments to the NETTYPE database sever configuration parameter can override NETTYPE parameter settings in the sqlhosts file. For more information and an example of an sqlhosts file, refer to the IBM Informix: Extended Parallel Server Administrator's Guide.

Each network poll thread runs in a separate virtual processor. The two virtual processor classes in which a poll thread can run are NET and CPU. Do not specify more poll threads than you need to support user connections. A poll thread run by a NET virtual processor can handle at least 100 connections. Poll threads run by CPU virtual processors are faster than poll threads run by NET virtual processors, but they can handle only about 50 connections.

For best performance, it is recommended that you assign only one poll thread to the CPU virtual processor class with a NETTYPE entry and that you assign all additional poll threads to NET virtual processors.The maximum number of poll threads that you assign to any one connection type must not exceed NUMCPUVPS.

Tip:
For best performance specify one poll thread for between 50 and 200 connections. In some environments a poll thread might be able to support as many as 400 connections. If you usually have more than 50 concurrent connections, however, IBM Informix MaxConnect can improve performance dramatically. MaxConnect is not included with the database server. For information, see the IBM Informix: MaxConnect User's Guide.

If your database server instance supports connections over more than one network interface or protocol, you can specify a separate NETTYPE configuration parameter for each connection type. The first NETTYPE configuration parameter for a given connection type in the ONCONFIG file applies to all coserver names that are associated with that type. Subsequent NETTYPE entries for that connection type are ignored. Even if connection types are not listed in the sqlhosts file, NETTYPE entries are required for connection types that are used for outgoing communication that uses that protocol.

Each NETTYPE entry configures the number of poll threads for a specific connection type, the number of connections per poll thread, and the virtual-processor class in which those poll threads run. The fields are separated by commas. No white space can exist within or between these fields:

NETTYPE connection_type,poll_threads,c_per_t,vp_class
connection_type
identifies the protocol-interface combination to which the poll threads are assigned. You usually set this field to match the connection_type field of a coserver-name entry in the sqlhosts file.
poll_threads
is the number of poll threads assigned to the connection type. Set this value to no more than NUMCPUVPS for any connection type. One poll thread can usually handle communications for up to 100 users.
c_per_t
is the number of connections per poll thread. Use the following formula to calculate this number:

c_per_t = connections / poll_threads
connections
is the maximum number of connections that you expect the indicated connection type to support. For shared-memory connections (ipcshm), double the number of connections for best performance.
vp_class
is the class of VP that runs the poll threads. Specify CPU if you have a single poll thread that runs on a CPU virtual processor. For best performance if you require more than one poll thread, specify NET. The default value for this field depends on the following conditions:

If c_per_t exceeds 350 and the number of poll threads for the current connection type is less than NUMCPUVPS, you can improve performance by specifying the NET CPU class, adding poll threads (do not exceed NUMCPUVPS), and recalculating c_per_t. The default value for c_per_t is 50.

Important:
Each ipcshm connection requires a semaphore. Some operating systems require that you configure a maximum number of semaphores that can be requested by all software packages that run on the computer. For best performance, double the number of actual ipcshm connections when you allocate semaphores for shared-memory communications. Refer to your machine notes and the IBM Informix: Extended Parallel Server Administrator's Guide for information.

If your computer is a uniprocessor and your database server instance is configured for only one connection type, you can omit the NETTYPE parameter. The database server uses the information provided in the sqlhosts file to establish client/server connections.

If your coserver node is a uniprocessor and your database server instance is configured for more than one connection type, include a separate NETTYPE entry for each connection type. If the number of connections of any one type significantly exceeds 300, assign two or more poll threads, up to a maximum of NUMCPUVPS, and specify the NET virtual processor class, as the following example shows:

NETTYPE ipcshm,1,200,CPU
NETTYPE tlitcp,2,200,NET # supports 400 connections

If your coserver node is a multiprocessor, your database server instance is configured for only one connection type, and the number of connections does not exceed 350, you can use NETTYPE to specify a single poll thread on either the CPU or the NET virtual processor class. If the number of connections exceeds 350, set the virtual processor class to NET, increase the number of poll threads, and recalculate c_per_t.

Important:
The sizes of buffers for TCP/IP connections, which are specified in the sqlhosts file, affect memory and CPU use. Adjusting the size of these buffers to accommodate a typical request can improve CPU use by eliminating the need to break requests into multiple messages. However, because the database server dynamically allocates buffers of the specified sizes for active connections, buffers can consume large amounts of memory unnecessarily if you do not size them carefully.
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]