这些设置可在 system.settings 中查看,并由 源文件 自动生成。
page_cache_block_size
类型
UInt64
默认值
1048576
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.5 | 1048576 | 使此设置可在查询级别进行调整。 |
存储到用户态页缓存中的文件分块大小,以字节为单位。所有通过缓存进行的读取都会向上舍入到该大小的整数倍。
此设置可以在查询级别进行调整,但块大小不同的缓存项无法复用。更改此设置实际上会使缓存中现有的缓存项失效。
较大的值 (如 1 MiB) 适合高吞吐量查询,较小的值 (如 64 KiB) 适合低延迟的点查询。
page_cache_inject_eviction
类型
Bool
默认值
0
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.3 | 0 | 新增用户态页缓存 |
用户态页缓存有时会随机使某些页失效。用于测试。
page_cache_lookahead_blocks
类型
UInt64
默认值
16
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 25.5 | 16 | 此设置现可在 查询级别 进行调整。 |
发生用户态页缓存未命中时,如果后续连续块也不在缓存中,则会一次性从底层存储中最多读取这么多个连续块。每个块的大小为 page_cache_block_size 字节。
较高的值适合高吞吐量查询,而低延迟的点查询在不启用预读时效果更好。
page_cache_max_coalesced_bytes
类型
UInt64
默认值
16777216
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.5 | 16777216 | 新增设置,用于限制缓存未命中时填充用户态页缓存所用的单次合并读取大小。 |
当 readBigAt 填充用户态页缓存时,连续的缓存未命中会合并为一次从底层存储发起的读取。此设置以字节为单位限制单次合并读取的大小;如果连续未命中的范围更长,则会拆分为多次读取。它可限制并行冷读期间临时缓冲区的瞬时内存使用量。
较大的值可减少对象存储上冷 scan 的 HTTP request 数量;较小的值可降低瞬时内存峰值。