JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 可调参数参考手册     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris 系统调优概述

2.  Oracle Solaris 内核可调参数

3.  Oracle Solaris ZFS 可调参数

何处查找可调参数信息

ZFS 调优的注意事项

ZFS ARC 参数

zfs_arc_min

zfs_arc_max

ZFS 文件级预取

zfs_prefetch_disable

ZFS 设备 I/O 队列深度

zfs_vdev_max_pending

使用闪存存储时调优 ZFS

将闪存设备添加为 ZFS 日志设备或高速缓存设备

确保闪存设备和 NVRAM 存储设备具有正确的高速缓存刷新行为

闪存设备的 SCSI 取消映射注意事项

为数据库产品进行 ZFS 调优

为 Oracle 数据库进行 ZFS 调优

ZFS 与 MySQL 结合使用的注意事项

4.  NFS 可调参数

5.  Internet 协议套件可调参数

6.  系统工具参数

A.  可调参数变更历史记录

B.  本手册的修订历史记录

索引

使用闪存存储时调优 ZFS

以下信息适用于闪存 SSD、F20 PCIe 加速卡、F40 PCIe 加速卡和 F5100 闪存存储阵列。

将 ZFS 用于闪存存储时请查看以下一般注释:

将闪存设备添加为 ZFS 日志设备或高速缓存设备

将闪存设备添加为 ZFS 日志设备或高速缓存设备时请查看以下建议。

闪存设备 c4t1d0 可添加为 ZFS 日志设备:

# zpool add pool log c4t1d0

如果有 2 个闪存设备,您可以添加镜像的日志设备:

# zpool add pool log mirror c4t1d0 c4t2d0

可用的闪存设备可添加为用于进行读取的高速缓存设备。

# zpool add pool cache c4t3d0

您不能镜像高速缓存设备,它们将条带化到一起。

# zpool add pool cache c4t3d0 c4t4d0

确保闪存设备和 NVRAM 存储设备具有正确的高速缓存刷新行为

ZFS 设计为与管理磁盘级高速缓存的存储设备一起使用。通常,ZFS 会通过请求高速缓存刷新来要求存储设备确保已将数据安全地放置到稳定的存储器上。对于 JBOD 存储而言,这种方式符合预期且不会出现任何问题。对于许多基于 NVRAM 的存储阵列而言,如果此类阵列接受高速缓存刷新请求并实际做出相应的操作而不是忽略该请求,则可能会出现性能问题。一些存储阵列会应要求刷新其大型高速缓存,而不考虑 NVRAM 保护使这些高速缓存与稳定存储器一样稳定的事实。

当 uberblock 更新后,ZFS 会以较低的频率发出刷新(如每 5 秒)。由于刷新频率很低,所以此处不需要考虑进行调优。ZFS 还会在每次应用程序请求同步写入(O_DSYNCfsync、NFS 提交等)时发出刷新。应用程序将等待此类刷新完成,因而会影响性能。实际上,影响就是这么大。从性能的角度来看,这抵消了采用基于 NVRAM 的存储的优点。

最近有证据表明,当闪存设备用作日志设备时,高速缓存刷新调优有助于提高闪存设备性能。当向 ZFS 公开的所有 LUN 均来自受 NVRAM 保护的存储阵列,并且有措施确保将来不会添加任何不受保护的 LUN 时,可以通过设置 zfs_nocacheflush 将 ZFS 调优为不发出刷新请求。如果向 ZFS 公开的一些 LUN 不受 NVRAM 保护,则此调优操作可能会导致数据丢失、应用程序级别的损坏,甚至池损坏。在某些受 NVRAM 保护的存储阵列中,高速缓存刷新命令是一个空操作,因此这种情况下的调优操作不会对性能产生任何影响。

最近的 OS 更改是:刷新请求语义能够指示存储设备忽略请求(如果它们具有适当的保护)。此更改要求修复磁盘驱动程序,以使 NVRAM 设备支持更新的语义。如果 NVRAM 设备不识别此改进,请使用以下说明来告知 Solaris OS 不要向阵列发送任何同步高速缓存命令。如果要使用这些说明,请确保所有目标 LUN 确实受 NVRAM 保护。

有时,闪存设备和 NVRAM 设备未正确地向 OS 通告它们为非设备,且无需刷新高速缓存。高速缓存刷新操作会消耗很多资源。在某些情况下,不必要的刷新会极大地影响性能。

在应用下面的调优项之前,请查看以下 zfs_nocacheflush 语法限制:


注意

注意 - 设备将忽略所有高速缓存同步命令。使用时需自担风险。


  1. 使用 format 实用程序对存储阵列中的 LUN 运行 inquiry 子命令。例如:

    # format
    .
    .
    .
    Specify disk (enter its number): x
    format> inquiry
    Vendor:   ATA     
    Product:  Marvell      
    Revision: XXXX
    format>
  2. 基于您的体系结构选择以下操作之一:

    • 对于 F40 闪存设备,将以下条目添加到 /kernel/drv/sd.conf 中。在下面的条目中,确保 "ATA" 填充为 8 个字符,"3E128-TS2-550B01" 包含 16 个字符。字符串总长度为 24 个字符。

      sd-config-list="ATA     3E128-TS2-550B01","disksort:false, cache-non:true";
    • 对于 F20 和 F5100 闪存设备,基于您的体系结构选择以下操作之一。在下面的条目中,"ATA" 填充为 8 个字符,"MARVELL SD88SA02" 包含 16 个字符。字符串总长度为 24 个字符。

    • 许多 SPARC 体系结构-将以下条目添加到 /kernel/drv/ssd.conf 中:

      ssd-config-list = "ATA     MARVELL SD88SA02","throttle-max:32, disksort:false, cache-non:true";
    • x64 和一些 SPARC 驱动程序-将以下条目添加到 /kernel/drv/sd.conf 中:

      ssd-config-list="ATA     MARVELL SD88SA02","throttle-max:32, disksort:false, cache-non:true";
  3. 如上所示,在 sd-config-list 条目中,小心地添加空格,使供应商 ID (VID) 长度为 8 个字符(此处为 ATA),并使产品 ID (PID) 长度为 16 个字符(此处为 MARVELL)。

  4. 重新引导系统。

    可将 zfs_nocacheflush 调整回其缺省值 (0),而不会对性能造成不利影响。

闪存设备的 SCSI 取消映射注意事项

Solaris 11.1 OS 中有一个问题,会导致过度调用 SCSI 取消映射例程。该特定问题会降低闪存性能。解决方法是按如下方式禁用取消映射功能: