Skip to main content
这些设置可在 system.settings 中查看,并由 源代码 自动生成。

local_filesystem_read_method

从本地文件系统读取数据的方法,可选值之一为:read、pread、mmap、io_uring、pread_threadpool。 ‘pread_threadpool’ 方法会将读取操作交由线程池处理,除非数据已位于页缓存中;这会通过 preadv2 系统调用和 RWF_NOWAIT 标志进行检查。该检查需要 Linux 5.11 或更高版本,并且该系统调用不得被容器运行时的 seccomp profile 拒绝。启动时会检查该系统调用是否可用;如果不可用,此设置的默认值会切换为 ‘pread’,因为将每次读取操作 (包括由页缓存提供的读取) 都交由线程池处理开销较大;原因会记录在服务器日志中。只有当 seccomp profile 以错误代码拒绝该系统调用时,才能检测到它,这也是容器运行时的行为;对于会直接终止进程的 profile,则无法检测。通过配置或使用 SET 显式设置的值不会被切换。 ‘io_uring’ 方法处于 Experimental 状态,并且不适用于 Log、TinyLog、StripeLog、File、Set 和 Join,以及其他在并发读写情况下使用可追加文件的表。 如果你在互联网上看过各种关于 ‘io_uring’ 的文章,不要被它们误导。除非是在有大量小型 IO 请求的场景下,否则它并不是更好的文件读取方法,而 ClickHouse 并不属于这种情况。因此,没有理由启用 ‘io_uring’。

local_filesystem_read_prefetch

从本地文件系统读取数据时,是否使用预取。
最后修改于 2026年8月14日