Pointer blocks, also called indirection blocks, are file system resources that contain addresses to VMFS file blocks. When you open a vmdk file on an ESXi host, pointer blocks related to that file are stored in the pointer block cache. The size of the pointer block cache is a configurable parameter.
The pointer block cache is a host-wide cache that is independent from VMFS. The cache is shared across all datastores that are accessed from the same ESXi host.
The size of the pointer block cache is controlled by /VMFS3/MinAddressableSpaceTB and /VMFS3/MaxAddressableSpaceTB. You can configure the minimum and maximum sizes on each ESXi host.
Parameter | Description |
---|---|
/VMFS3/MinAddressableSpaceTB | The minimum value is minimum amount of memory that the system guarantees to the pointer block cache. For example, 1 TB of open file space requires approximately 4 MB of memory. Default value is 10 TB. |
/VMFS3/MaxAddressableSpaceTB | The parameter defines the maximum limit of pointer blocks that can be cached in memory. Default value is 32 TB. Maximum value is 128 TB. Typically, the default value of the /VMFS3/MaxAddressableSpaceTB parameter is adequate. However, as the size of the open vmdk files increases, the number of pointer blocks related to those files also increases. If the increase causes any performance degradation, you can adjust the parameter to its maximum value to provide more space for the pointer block cache. Base the maximum size of the pointer block cache on the working set, or the active pointer blocks required. |
Pointer Block Eviction | The /VMFS3/MaxAddressableSpaceTB parameter also controls the growth of the pointer block cache. When the size of the pointer block cache approaches the configured maximum size, a pointer block eviction process starts. The mechanism leaves active pointer blocks, but removes non-active or less active blocks from the cache, so that space can be reused. |
To change the values for the pointer block cache, use the Advanced System Settings dialog box of the vSphere Client or the esxcli system settings advanced set -o command.
You can use the esxcli storage vmfs pbcache command to obtain information about the size of the pointer block cache and other statistics. This information assists you in adjusting minimum and maximum sizes of the pointer block cache, so that you can get maximum performance.
Obtain Information for VMFS Pointer Block Cache
You can get information about VMFS pointer block cache use. This information helps you understand how much space the pointer block cache consumes. You can also determine whether you must adjust the minimum and maximum sizes of the pointer block cache.
Prerequisites
Install ESXCLI. See Getting Started with ESXCLI. For troubleshooting, run esxcli commands in the ESXi Shell.
Procedure
- ♦ To obtain or reset the pointer block cache statistics, use the following command:
esxcli storage vmfs pbcache
Option Description get Get VMFS pointer block cache statistics. reset Reset the VMFS pointer block cache statistics.
Example: Getting Statistics for Pointer Block Cache
#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
Change the Size of the Pointer Block Cache
You can adjust the minimum and maximum sizes of the pointer block cache.
Procedure
- Browse to the host.
- Click the Configure tab.
- Under System, click Advanced System Settings.
- In Advanced System Settings, select the appropriate item.
Option Description VMFS3.MinAddressableSpaceTB Minimum size of all open files that VMFS cache guarantees to support. VMFS3.MaxAddressableSpaceTB Maximum size of all open files that VMFS cache supports before eviction starts. - Click the Edit button and change the value.
- Click OK.
Example: Use the esxcli Command to Change the Pointer Block Cache
You can also use the esxcli system settings advanced set -o to modify the size of the pointer block cache. The following example describes how to set the size to its maximum value of 128 TB.
- To change the value of /VMFS3/MaxAddressableSpaceTB to 128 TB, enter the following command:
# esxcli system settings advanced set -i 128 -o /VMFS3/MaxAddressableSpaceTB
- To confirm that the value is set correctly, enter this command:
# esxcli system settings advanced list -o /VMFS3/MaxAddressableSpaceTB