Solaris Tunable Parameters Reference Manual

ncsize

Description

Number of entries in the directory name look-up cache (DNLC). This parameter is used by UFS and NFS to cache elements of path names that have been resolved.

Starting with the Solaris 8 6/00 release, the DNLC also caches negative lookup information, which means it caches a name not found in the cache.

Data Type

Signed integer

Default

4 x (v.v_proc + maxusers) + 320

Range

0 to MAXINT

Units

DNLC entries

Dynamic?

No

Validation

None. Larger values cause the time it takes to unmount a file system to increase as the cache must be flushed of entries for that file system during the unmount process.

When to Change

Prior to the Solaris 8 6/00 release, it is difficult to determine whether the cache is too small. It is possible to infer this by noting the number of enters returned by kstat -n ncstats. If the number seems high given the system workload and file access pattern, this may be due to the size of the DNLC.

Starting with the Solaris 8 6/00 release, kstat -n dnlcstats, is available for you to determine when entries have been removed from the DNLC because it was too small. The sum of the pick_heuristic and the pick_last represents otherwise valid entries which were reclaimed because the cache was too small.

Note that excessive values of ncsize have an immediate impact on the system since the system allocates a set of data structures for the DNLC based on the value of ncsize. A system running a 32-bit kernel allocates 36 byte structures for ncsize, while a system running a 64-bit kernel allocates 64 byte structures for ncsize. The value also has a further affect on UFS and NFS unless ufs_inode and nfs:nfs_rnode are explicitly set.

Commitment Level

Unstable