Support for private network buffers
The database server provides support for private network buffers for each session that uses SOCTCP, IPCSTR, or TLITCP network connections.
For situations in which many connections and sessions are constantly
active, these private network buffers have the following advantages:
- Less contention for the common network buffer pool
- Fewer CPU resources to allocate and deallocate network buffers to and from the common network buffer pool for each network transfer
The IFX_NETBUF_PVTPOOL_SIZE environment variable specifies the size of the private network buffer pool for each session. The default size is one buffer.
Use the onstat utility commands in the following table to
monitor the network buffer usage.
Command | Output Field | Description |
---|---|---|
onstat -g ntu | q-pvt | The current number and highest number of buffers that are free in the private pool for this session |
onstat -g ntm | q-exceeds | The number of times that the free buffer threshold was exceeded |
The onstat -g ntu command displays the following
format for the q-pvt output field:
current number / highest number
If the number of free buffers (value in q-pvt field) is
consistently 0, you can perform one of the following actions:
- Increase the number of buffers with the environment variable IFX_NETBUF_PVTPOOL_SIZE.
- Increase the size of each buffer with the environment variable IFX_NETBUF_SIZE.
The q-exceeds field indicates the number of times that the threshold for the shared network free-buffer pool was exceeded. When this threshold is exceeded, the database server returns the unused network buffers (over this threshold) to the global memory pool in shared memory. Optimally, this value should be 0 or a low number so that the server is not allocating or deallocating network buffers from the global memory pool.