指针块也称为间接块,是包含 VMFS 文件块的文件系统资源。在 ESXi 主机上打开 vmdk 文件时,与该文件相关的指针块会存储在指针块缓存中。指针块缓存的大小是可配置参数。

指针块缓存是主机范围的缓存,与 VMFS 无关。从同一个 ESXi 主机访问的所有数据存储共享该缓存。

指针块缓存的大小由 /VMFS3/MinAddressableSpaceTB/VMFS3/MaxAddressableSpaceTB 控制。可以配置每个 ESXi 主机上的最小大小和最大大小。

参数 描述
/VMFS3/MinAddressableSpaceTB 最小值是系统向指针块缓存保证的最小内存量。例如,1 TB 的打开文件空间需要大约 4 MB 的内存。默认值为 10 TB。
/VMFS3/MaxAddressableSpaceTB 此参数定义可在内存中缓存的指针块最大限制。默认值为 32 TB。最大值为 128 TB。通常,/VMFS3/MaxAddressableSpaceTB 参数的默认值足以满足需求。

但是,随着打开 vmdk 文件大小的增加,与这些文件相关的指针块数量也将随之增加。如果增加幅度会导致性能降低,您可以将此参数调整为其最大值,以便为指针块缓存提供更多空间。使指针块缓存的最大大小基于工作集或所需的活动指针块。

Pointer Block Eviction /VMFS3/MaxAddressableSpaceTB 参数还控制指针块缓存的增长。当指针块缓存的大小接近配置的最大大小时,将启动指针块逐出过程。该机制将保留活动的指针块,而从缓存中移除非活动的或活动较少的块,以便可以重用空间。

要更改指针块缓存的值,请使用 vSphere Client 的高级系统设置对话框或 esxcli system settings advanced set -o 命令。

您可以使用 esxcli storage vmfs pbcache 命令获取有关指针块缓存大小的信息以及其他统计信息。这些信息可帮助您调整指针块缓存的最小和最大大小,以便您可以获得最佳性能。

获取 VMFS 指针块缓存的信息

您可以获取有关 VMFS 指针块缓存使用情况的信息。该信息可帮助您了解指针块缓存占用的空间大小。您还可以确定是否必须要调整指针块缓存的最小和最大大小。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  • 要获取或重置指针块缓存统计信息,请使用以下命令:
    esxcli storage vmfs pbcache
    选项 描述
    get 获取 VMFS 指针块缓存统计信息。
    reset 重置 VMFS 指针块缓存统计信息。

示例: 获取指针块缓存统计信息

#esxcli storage vmfs pbcache get
   Cache Capacity Miss Ratio: 0 %
   Cache Size: 0 MiB
   Cache Size Max: 132 MiB
   Cache Usage: 0 %
   Cache Working Set: 0 TiB
   Cache Working Set Max: 32 TiB
   Vmfs Heap Overhead: 0 KiB
   Vmfs Heap Size: 23 MiB
   Vmfs Heap Size Max: 256 MiB

更改指针块缓存的大小

可以调整指针块缓存的最小大小和最大大小。

小心: 更改高级选项将被视为不受支持。通常,使用默认设置即可获得最佳结果。仅当 VMware 技术支持或知识库文章提供了具体指示时,才能更改高级选项。

过程

  1. 浏览到主机。
  2. 单击配置选项卡。
  3. 系统下,单击高级系统设置
  4. 在“高级系统设置”中,选择相应项。
    选项 描述
    VMFS3.MinAddressableSpaceTB VMFS 缓存保证支持的所有打开文件的最小大小。
    VMFS3.MaxAddressableSpaceTB VMFS 缓存在逐出开始前支持的所有打开文件的最大大小。
  5. 单击编辑按钮并更改值。
  6. 单击确定

示例: 使用 esxcli 命令更改指针块缓存

还可以使用esxcli system settings advanced set -o来修改指针块缓存的大小。以下示例介绍如何将大小设置为最大值 128 TB。

  1. 要将 /VMFS3/MaxAddressableSpaceTB的值更改为 128 TB,请输入以下命令:

    # esxcli system settings advanced set -i 128 -o /VMFS3/MaxAddressableSpaceTB

  2. 要确认值是否设置正确,请输入以下命令:

    # esxcli system settings advanced list -o /VMFS3/MaxAddressableSpaceTB