调整 Inode 的数量和 Inode 散列表
Sun QFS 文件系统允许您在 /etc/system 文件中设置以下两个可调参数:
ninodes
nhino
要启用这两个参数的非默认设置,请编辑 /etc/system 文件,然后重新引导系统。
ninodes 参数
ninodes 参数指定默认 inode 的最大数量。ninodes 的值决定着 Sun QFS 软件为自身分配的内存中 inode 的数量(即使在应用程序未使用很多 inode 的情况下)。
此参数在 /etc/system 文件中的格式如下所示:set samfs:ninodes = _value_
value 的取值范围是从 16 到 2000000。ninodes 的默认值是以下项之一:
等于 ncsize 设置的值。ncsize 参数是一个 Oracle Solaris 调整参数,用于指定目录名称查找高速缓存 (directory name lookup cache, DNLC) 中条目的数量。有关 ncsize 的更多信息,请参见《Oracle Solaris 可调参数参考手册》。
2000。如果 ncsize 设置为零或超出范围,则 ninodes 将设置为 2000。
nhino 参数
nhino 参数指定内存中 inode 散列表的大小。
此参数在 /etc/system 文件中的格式如下所示:set samfs:nhino = value
value 的取值范围是从 1 到 1048756。value 必须是 2 的非零次幂。nhino 的默认值是以下项之一:
ninodes 值除以 8,然后根据需要将所得数值向上舍入到最接近 2 的幂的值。例如,假定 /etc/system 中存在以下行:set samfs:ninodes 8000
对于此示例,如果未设置 nhino,则系统采用 1024,它是 8000 除以 8,然后将所得数值向上舍入到最接近的 2 的幂 (210) 所得的值。
如果 ninodes 设置超出范围,则 nhino 将设置为 512。
何时设置 ninodes 和 nhino 参数
按编号搜索 inode 时,Sun QFS 文件系统将搜索其内存中 inode 的高速缓存。为了加速此进程,文件系统会维护一个散列表以减少必须检查的 inode 的数量。
较大的散列表可减少比较和搜索的次数,但这会耗用一定大小的内存。如果 nhino 值太大,则在执行扫描整个 inode 列表的操作(inode 同步和卸载)时,系统的运行速度会较慢。对于处理大量文件的站点以及执行大量 NFS I/O 的站点,将这些参数值设置为大于默认值可能会比较有利。
如果站点中的文件系统仅包含少量文件,请考虑将这些值设置为小于默认值。例如,将大型的单个 tar(1) 文件写入您的文件系统以备份其他文件系统时,此设置可能会提高性能。