Go to main content

Oracle® Solaris 11.3 Tunable Parameters Reference Manual

Exit Print View

Updated: July 2017
 
 

General File System Parameters

This section describes parameters that relate to file systems.

dnlc_dir_enable

Description

Enables large directory caching


Note -  This parameter has no effect on NFS or ZFS file systems.
Data Type

Unsigned integer

Default

1 (enabled)

Range

0 (disabled) or 1 (enabled)

Dynamic?

Yes, but do not change this tunable dynamically. You can enable this parameter if it was originally disabled. Or, you can disable this parameter if it was originally enabled. However, enabling, disabling, and then enabling this parameter might lead to stale directory caches.

Validation

No

When to Change

Directory caching has no known problems. However, if problems occur, then set dnlc_dir_enable to 0 to disable caching.

Commitment Level

Unstable

dnlc_dir_max_size

Description

Specifies the maximum number of entries cached for one directory.


Note -  This parameter has no effect on NFS or ZFS file systems.
Data Type

Unsigned integer

Default

MAXUINT (no maximum)

Range

0 to MAXUINT

Dynamic?

Yes, this parameter can be changed at any time.

Validation

None

When to Change

If performance problems occur with large directories, then decrease dnlc_dir_max_size.

Commitment Level

Unstable

dnlc_dir_min_size

Description

Specifies the minimum number of entries cached for one directory.


Note -  This parameter has no effect on NFS or ZFS file systems.
Data Type

Unsigned integer

Default

40

Range

0 to MAXUINT (no maximum)

Units

Entries

Dynamic?

Yes, this parameter can be changed at any time.

Validation

None

When to Change

If performance problems occur with caching small directories, then increase dnlc_dir_min_size. Note that individual file systems might have their own range limits for caching directories.

Commitment Level

Unstable

dnlc_dircache_percent

Description

Calculates the maximum percentage of physical memory that the DNLC directory cache can consume.

Data Type

Integer

Default

100

Range

0 to 100

Units

Percentage

Dynamic?

No

Validation

At boot time, the value range is checked and default value is enforced.

When to Change

When the system experiences a memory shortage and high kernel memory consumption, consider lowering this value. If performance issues are seen with the default value, consider increasing the value.


Note -  The DNLC is used by UFS and ZFS file systems and NFS clients. Setting this tunable might be considered for better performance when there are memory shortages and high kernel memory consumption or when a memory is needed by the ARC or other kernel caches.
Commitment Level

Unstable

ncsize

Description

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

The DNLC also caches negative look-up information, which means it caches a name not found in the cache.

Data Type

Signed integer

Default

(4 x (v.v_proc + maxusers) + 320) + (4 x (v.v_proc + maxusers) + 320) / 100

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

You can use the kstat -n dnlcstats command to view the number of hits and misses in the DNLC. A high ratio of misses to hits might indicate that the DNLC is too small. Increasing the value of ncsize can help improve performance.

Excessive values of ncsize have an immediate impact on the system memory usage. Memory that is used directly by the DNLC increases in proportion to ncsize. In addition, caching more entries in the DNLC might require filesystem context relating to those entries to remain in memory when it would otherwise be freed.

Commitment Level

Unstable