JavaScript is required to for searching.
跳过导航链接
退出打印视图
Sun QFS 文件系统 5.3 配置和管理指南     Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  文件系统概述

2.  关于主配置文件

3.  mcf 文件示例

4.  配置文件系统

5.  配置共享文件系统

6.  管理文件系统配额

7.  高级文件系统主题

8.  SAM-QFS 中的 SMB 服务

9.  配置 WORM-FS 文件系统

10.  可调参数

增强大型文件的文件传输性能

如何增强文件传输性能

启用 Qwrite 功能

设置写调速

设置延后刷新率

调整 Inode 的数量和 Inode 散列表

ninodes 参数

nhino 参数

何时设置 ninodesnhino 参数

11.  将 QFS 文件系统与 SANergy 一起使用 (SAN-QFS)

12.  共享文件系统中的挂载选项

13.  使用 samu 操作员实用程序

增强大型文件的文件传输性能

Sun QFS 文件系统经过调整后可以处理大小不等的各种文件。通过启用文件系统设置,您可以增强大型文件的磁盘文件传输性能。

如何增强文件传输性能

  1. 设置最大设备读/写指令。

    Oracle Solaris /etc/system 文件中的 maxphys 参数控制着设备驱动程序每一次读取或写入的最大字节数。根据 Oracle Solaris OS 的级别,maxphys 参数的默认值可能会有所不同,但通常在 128 KB 左右。

    将以下行添加到 /etc/system,将 maxphys 设置为 1 MB:

    set maxphys = 0x100000

    注 - 必须maxphys 值设置为 2 的幂。


  2. 设置 SCSI 磁盘最大传输参数。

    sd 驱动程序通过在 /kernel/drv/sd.conf 文件中查找 sd_max_xfer_size 定义来启用特定文件的大型传输。如果不存在此定义,则驱动程序将使用 sd 设备驱动程序定义中定义的值 sd_max_xfer_size(即 1024 x 1024 字节)。

    要启用和鼓励使用大型传输,请在 /kernel/drv/sd.conf 文件末尾添加以下行:

    sd_max_xfer_size=0x800000;
  3. 设置光纤磁盘最大传输参数。

    ssd 驱动程序通过在 /kernel/drv/ssd.conf 文件中查找 ssd_max_xfer_size 定义来启用特定文件的大型传输。如果不存在此定义,则驱动程序将使用 ssd 设备驱动程序定义中定义的值 ssd_max_xfer_size(即 1024 x 1024 字节)。

    /kernel/drv/ssd.conf 文件末尾添加以下行:

    ssd_max_xfer_size=0x800000;

    注 - 在 Oracle Solaris 10 x86 平台上,将在 /kernel/drv/sd.conf 文件中进行此更改。要使最大传输大小为 8 MB,请添加以下行:


    sd_max_xfer_size=0x800000
  4. 重新引导系统。
  5. 设置 writebehind 参数。

    此步骤仅影响分页 I/O。

    writebehind 参数指定在 Sun QFS 文件系统上执行分页 I/O 时文件系统延后写入的字节数。使 writebehind 值与 RAID 的读取-修改-写入值的倍数相匹配可以提高性能。

    此参数以 KB 为单位,并按 8 KB 的倍数进行取整。如果已设置此参数,则在执行直接 I/O 时将忽略此参数。writebehind 的默认值是 512 KB。此值有利于大型块连续 I/O。

    对于硬件和软件 RAID-5,请将 writebehind 大小设置为 RAID 5 分散读写大小的倍数。RAID-5 分散读写大小等于数据磁盘数乘以配置的分散读写宽度。

    例如,假设您配置的 RAID-5 设备有三个数据磁盘和一个奇偶磁盘 (3+1),而分散读写宽度为 16 KB。则 writebehind 值应为 48 KB、96 KB 或其他倍数,以避免产生读取-修改-写入 RAID-5 奇偶开销。对于 Sun QFS 文件系统,DAU(sammkfs -a 命令)也应该是 RAID-5 分散读写大小的倍数。这种分配可以确保块的连续性。

    重新设置 writebehind 大小后,应测试系统性能。以下示例显示了对磁盘写入计时的测试:

    # timex dd if=/dev/zero of=/sam/myfile bs=256k count=2048

    您可以从挂载选项、在 samfs.cmd 文件中、/etc/vfstab 文件中或通过 samu 实用程序中的命令设置 writebehind 参数。有关从挂载选项启用此设置的信息,请参见 mount_samfs(1M) 手册页中的 -o writebehind=n 选项。有关通过 samfs.cmd 文件启用此设置的信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"samfs.cmd(4)"。有关在 samu(1M) 中启用此设置的信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"samu(1M)"

  6. 设置 readahead 参数。此步骤仅影响分页 I/O。

    readahead 参数指定在 Sun QFS 文件系统上执行分页 I/O 时文件系统提前读取的字节数。此参数以 KB 为单位,并按 8 KB 的倍数进行取整。如果已设置此参数,则在执行直接 I/O 时将忽略此参数。

    增加 readahead 参数的大小可增强大型文件的传输性能,但性能增强的幅度很小。重新设置 readahead 大小后,应测试系统性能,直到传输速率不再提高为止。以下示例显示了一种测试磁盘读取计时的方法:

    # timex dd if=/sam/myfile of=/dev/null bs=256k

    您应针对自己的环境测试不同的 readahead 大小。应将 readahead 参数的大小设置为能够增强分页 I/O 的 I/O 性能,但不能大到影响性能。还应考虑内存容量和并发流数。如果设置的 readahead 值乘以流数得到的值大于内存容量,则可能会导致分页崩溃。

    readahead 的默认值是 1024 KB。此值有利于大型块连续 I/O。对于小型块、随机 I/O 的应用程序,请将 readahead 设置为一般请求大小。数据库应用程序自身具有提前读取功能,因此对于这些应用程序,请将 readahead 设置为 0。

    可以从挂载选项、在 samfs.cmd 文件中、/etc/vfstab 文件中,或通过 samu 实用程序中的命令启用 readahead 设置。有关从挂载选项启用此设置的信息,请参见 mount_samfs(1M) 手册页中的 -o readahead=n 选项说明。有关通过 samfs.cmd 文件启用此设置的信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"samfs.cmd(4)"。有关在 samu(1M) 中启用此设置的信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"samu(1M)"

  7. 设置分散读写宽度。

    mount 命令的 -o stripe=n 选项指定文件系统的分散读写宽度。分散读写宽度基于磁盘分配单元 (DAU) 的大小。n 参数指定将 n x DAU 个字节写入一个设备之后,才会转为写入下一个设备。可以通过 sammkfs -a 命令,在文件系统初始化时设置 DAU 的大小。

    如果设置了 -o stripe=0,则使用循环分配方法将文件分配到文件系统设备。采用该方法时,系统将每个文件尽可能分配在某一个设备上,直至填满该设备为止。对于多流环境,循环分配是首选设置。如果将 -o stripe=n设置为大于零的整数,则使用分散读写方法将文件分配到文件系统设备。要确定适当的 -o stripe=n 设置,请尝试不同的设置以获得最佳读取性能。对于带有请求的带宽的全包 (turnkey) 应用程序,分散读写是首选设置。

    您也可以通过 /etc/vfstab 文件或 samfs.cmd 文件设置分散读写宽度。

    有关 mount 命令的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"mount_samfs(1M)"。有关 samfs.cmd 文件的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"samfs.cmd(4)"