DuckDB默认将系统内存的80%用作缓冲池,在2GB容器中易被OOM杀死。其数据块、哈希表和排序缓冲均从单一缓冲池分配,由memory_limit控制;threads决定并行度,temp_directory指定溢出目录。查询超限时,DuckDB会将中间结果分区溢出到磁盘,查询变慢但能完成;若未配置临时目录则返回内存错误而非崩溃。针对2GB Kubernetes Pod的调优示例为:memory_limit设为768MB、threads为2、配置可写临时目录并限制其大小。与Snowflake相比,DuckDB仅有一级本地磁盘溢出且需用户自行配置,Snowflake则有本地SSD和远程存储两级溢出,内存由平台管理。
完成下面两步后,将自动完成登录并继续当前操作。