ilog_index_expire_time
用于设置 OBServer 可提供的 Ilog 文件读取的时间上限。
描述
属性 | 描述 |
---|---|
参数类型 | 时间类型 |
默认值 | 60d,表示 60 天 |
取值范围 | [0s,120d) |
是否重启 OBServer 生效 | 否 |
在 OceanBase 数据库中,file_id_cache
缓存了所有 Ilog 文件对应的元数据信息,记录了每个分区在这些 Ilog 文件中的起始日志号及时间戳。默认情况下,只有在 Ilog 文件被删除时才会触发对 file_id_cache
的清理。因此,在磁盘空间较大的机器上,很容易出现 file_id_cache
占用较大的内存空间的情况,同时,如果反复出现分区的创建与删除时,该情况还会被进一步放大。
您可以通过调整 ilog_index_expire_time
配置项的值来解决 file_id_cache
占用较大内存空间的问题。ilog_index_expire_time
定义了 OBServer 可提供的 Ilog 文件读取的时间上限,对于超过指定时间上限的 Ilog,将不在 file_id_cache
中进行缓存,从而起到减少内存占用的作用。
在设置该配置项的值时:
如果缩短该配置项值所对应的时间上限,系统会迅速地清理
file_id_cache
的内存占用。设置后,您可以通过查询ob_csr_file_id_cache
标识对应的内存的占用量进行观测。如果扩大该配置项所对应的时间上限,在机器重启后,系统会让
file_id_cach
缓存时间跨度范围更大的 Ilog 文件。
示例
obclient> ALTER SYSTEM SET ilog_index_expire_time = '7d';