Solaris Tunable Parameters Reference Manual

Chapter 5 Network Cache and Accelerator (NCA) Tunable Parameters

This chapter describes some of the Network Cache and Accelerator (NCA) tunable parameters.

Where to Find Tunable Parameter Information

Tunable Parameter 

For Information 

Solaris Kernel Tunables 

Chapter 2, Solaris Kernel Tunables

NFS Tunable Parameters 

Chapter 3, NFS Tunable Parameters

TCP/IP Tunable Parameters 

Chapter 4, TCP/IP Tunable Parameters

Overview of Tuning NCA Parameters

Setting these parameters is appropriate on a system that is a dedicated web server. These parameters allocate more memory for caching pages. You can set all of the tuning parameters described in this chapter in the /etc/system file.

For information on adding tunable parameters to the /etc/system file, see Tuning the Solaris Kernel.

nca:nca_conn_hash_size

Description

Controls the hash table size in the NCA module for all TCP connections, adjusted to nearest prime number.

Default

383 hash table entries

Range

0 to 201,326,557

Dynamic?

No

When to Change

When the NCA's TCP hash table is too small to keep track of the incoming TCP connections, which causes many TCP connections to be grouped together in the same hashtable entry. This situation is indicated when NCA is receiving a lot of TCP connections and system performance decreases.

Commitment Level

Unstable

nca:nca_conn_req_max_q

Description

The maximum number of pending TCP connections for NCA to listen on.

Default

256 connections

Range

0 to 4,294,967,295

Dynamic?

No

When to Change

When NCA closes a connection immediately after it is established because it already has too many established TCP connections. If NCA is receiving a lot of TCP connections and can handle a larger load, but is refusing any more connections, increase this parameter to allow NCA to handle more simultaneous TCP connections.

Commitment Level

Unstable

nca:nca_conn_req_max_q0

Description

The maximum number of incomplete (three-way handshake not yet finished) pending TCP connections for NCA to listen on.

Default

1024 connections

Range

0 to 4,294,967,295

Dynamic?

No

When to Change

When NCA refuses to accept any more TCP connections because it already has too many pending TCP connections. If NCA is receiving a lot of TCP connections and can handle a larger load, but is refusing any more connections, increase this parameter to allow NCA to handle more simultaneous TCP connections.

Commitment Level

Unstable

nca:nca_ppmax

Description

Maximum amount of physical memory (in pages) used by NCA for caching the pages. Should not be more than 75% of total memory.

Default

25% of physical memory

Range

1% to maximum amount of physical memory

Dynamic?

No

When to Change

When using NCA on a system with a lot of memory (greater than 512 Mbytes). If a system has a lot of physical memory that is not being used, increase this parameter so NCA will efficiently use this memory to cache new objects, and therefore, increase system performance.

This parameter should be increased in conjunction with nca_vpmax unless you have a system with more physical memory than virtual memory (a 32–bit kernel that has greater than 4 Gbytes memory). Use pagesize(1) to get your system's page size.

Commitment Level

Unstable

nca:nca_vpmax

Description

Maximum amount of virtual memory (in pages) used by NCA for caching pages. Should not be more than 75% of the total memory.

Default

25% of virtual memory

Range

1% to maximum amount of virtual memory

Dynamic?

No

When to Change

When using NCA on a system with a lot of memory (greater than 512 Mbytes). If a system has a lot of virtual memory that is not being used, increase this parameter so NCA will efficiently use this memory to cache new objects, and therefore, increase system's performance.

This parameter should be increased in conjunction with nca_ppmax. Set this parameter approximately same as nca_vpmax unless you have a system with more physical memory than virtual memory.

Commitment Level

Unstable

General System Tuning for the NCA

In addition to setting the NCA parameters, you can do some general system tuning to benefit NCA performance. If you are using Sun GigabitEthernet (ge driver), you should set the interface in interrupt mode for better results.

For example, a system with 4 Gbytes of memory and booted under 64–bit kernel should have the following parameters set in the /etc/system file. Use pagesize to determine your system's page size.


set sq_max_size=0
set ge:ge_intr_mode=1
set nca:nca_conn_hash_size=82500
set nca:nca_conn_req_max_q=100000
set nca:nca_conn_req_max_q0=100000
set nca:nca_ppmax=393216
set nca:nca_vpmax=393216

sq_max_size

Description

The depth of the syncq (number of messages) before a destination streams queue generates a QFULL message.

Default

2 messages

Range

1 to 0 (unlimited)

Dynamic?

No

When to Change

When NCA is running on a system with a lot of memory, increase this parameter to allow drivers to queue more packets of data. If a server is under heavy load, increase this parameter so modules and drivers may process more data without dropping packets or getting backlogged.

Commitment Level

Unstable

ge:ge_intr_mode

Description

Enables the ge driver to send packets directly to the upper communication layers rather than queueing the packets.

Default

0 (queue packets to upper layers)

Range

0 (enable) to 1 (disable)

Dynamic?

No

When to Change

When NCA is enabled, set this parameter to 1 so that the packet is delivered to NCA in interrupt mode for faster processing

Commitment Level

Unstable