计算新块的元数据区域的示例

本主题包含一个显示如何估计两个智能大对象空间块所需元数据大小的示例。

假设 onstat -d 选项中的 Metadata size 字段显示当前元数据区域为 1000 页。 如果系统页大小为 2048 字节,那么此元数据区域大小为 2000 千字节,如以下计算所示:

当前元数据大小 = (metadata_size * pagesize) / 1024
                                  = (1000 * 2048) / 1024 
                              = 2000 KB

假设预期在这两个智能大对象空间块中有 31,000 个智能大对象。 以下公式计算两个块必需的元数据区域的总大小,小数部分向上舍入:

总元数据大小 = (LOcount*570)/1024 + (numchunks*800) + 100
                              = (31,000 * 570)/1024 + (2*800) + 100 
                              = 17256 + 1600 + 100
             = 18956 KB
要获取元数据所需的额外区域:
  1. 从元数据总值减去当前元数据大小。
    额外元数据大小 = 总元数据大小 - 当前元数据大小
                                              = 18956 - 2000 
                                          = 16956 KB
    
  2. 将该块添加到智能大对象空间时,使用 onspaces -a 命令的 -Ms 选项来指定 16,956 千字节的元数据。
    % onspaces -a sbchk2 -p /dev/raw_dev1 -o 200 -Ms 16956