指针块也称为间接块,是包含 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
更改指针块缓存的大小
可以调整指针块缓存的最小大小和最大大小。
过程
- 浏览到主机。
- 单击配置选项卡。
- 在系统下,单击高级系统设置。
- 在“高级系统设置”中,选择相应项。
选项 描述 VMFS3.MinAddressableSpaceTB VMFS 缓存保证支持的所有打开文件的最小大小。 VMFS3.MaxAddressableSpaceTB VMFS 缓存在逐出开始前支持的所有打开文件的最大大小。 - 单击编辑按钮并更改值。
- 单击确定。
示例: 使用 esxcli 命令更改指针块缓存
还可以使用esxcli system settings advanced set -o来修改指针块缓存的大小。以下示例介绍如何将大小设置为最大值 128 TB。
- 要将 /VMFS3/MaxAddressableSpaceTB的值更改为 128 TB,请输入以下命令:
# esxcli system settings advanced set -i 128 -o /VMFS3/MaxAddressableSpaceTB
- 要确认值是否设置正确,请输入以下命令:
# esxcli system settings advanced list -o /VMFS3/MaxAddressableSpaceTB