JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris 11.1 Tunable Parameters Reference Manual     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

1.  Overview of Oracle Solaris System Tuning

2.  Oracle Solaris Kernel Tunable Parameters

3.  Oracle Solaris ZFS Tunable Parameters

Where to Find Tunable Parameter Information

Tuning ZFS Considerations

ZFS ARC Parameters

zfs_arc_min

zfs_arc_max

ZFS File-Level Prefetch

zfs_prefetch_disable

ZFS Device I/O Queue Depth

zfs_vdev_max_pending

Tuning ZFS When Using Flash Storage

Adding Flash Devices as ZFS Log or Cache Devices

Ensuring Proper Cache Flush Behavior for Flash and NVRAM Storage Devices

SCSI Unmap Considerations for Flash Devices

Tuning ZFS for Database Products

Tuning ZFS for an Oracle Database

Using ZFS with MySQL Considerations

4.  NFS Tunable Parameters

5.  Internet Protocol Suite Tunable Parameters

6.  System Facility Parameters

A.  Tunable Parameters Change History

B.  Revision History for This Manual

Index

ZFS File-Level Prefetch

zfs_prefetch_disable

Description

This parameter determines a file-level prefetching mechanism called zfetch. This mechanism looks at the patterns of reads to files and anticipates on some reads, thereby reducing application wait times. The current behavior suffers from two drawbacks:

  • Sequential read patterns made of small reads very often hit in the cache. In this case, the current behavior consumes a significant amount of CPU time trying to find the next I/O to issue, whereas performance is governed more by the CPU availability.

  • The zfetch code has been observed to limit scalability of some loads. CPU profiling can be done by using the lockstat -I command or er_kernel as described here:

    http://developers.sun.com/prodtech/cc/articles/perftools.html

    You can disable prefetching by setting zfs_prefetch_disable in the /etc/system file.

    Device-level prefetching is disabled when zfs_vdev_cache_size is disabled. This means that tuning vdev cache shift is no longer necessary if zfs_vdev_cache_size is disabled.

Data Type

Boolean

Default

0 (enabled)

Range

0 (enabled) or 1 (disabled)

Dynamic?

Yes

Validation

No

When to Change

If the results of er_kernel show significant time in zfetch_* functions, or if lock profiling with lockstat shows contention around zfetch locks, then disabling file level prefetching should be considered.

Commitment Level

Unstable