跳到主要内容

我的工作负载很慢

如果你发现 Goose 中的工作负载较慢,建议按以下清单进行检查。每条都附有更详细说明链接。

  1. 内存是否足够?Goose 在每线程 1-4 GB 内存时表现最佳。
  2. 系统是否存在内存过度承诺导致 swap?可尝试通过 SET memory_limit = '...'; 将可用内存从默认总 RAM 的 80%适当调低。虽然看起来反直觉,但在内存紧张且其他进程可能占用超过 20% 系统内存时,反而可能提升查询性能。
  3. 磁盘是否足够快?网络附加磁盘(如云块存储)会让写密集和大于内存规模负载变慢。在云环境中运行这类负载时,建议使用实例直连存储(NVMe SSD)。
  4. 是否使用了索引或约束(primary key、unique 等)?若可行,尝试禁用它们以提升导入与更新性能。
  5. 类型是否正确?例如,可使用 TIMESTAMP 编码日期时间值
  6. 是否从 Parquet 文件读取?如果是,row group 大小是否在 100k 到 1M,且单文件大小是否在 100 MB 到 10 GB 之间?
  7. 查询计划是否合理?可用 EXPLAIN 分析。
  8. 负载是否在并行执行?可用 htop 或系统任务管理器观察。
  9. Goose 是否使用了过多线程?可尝试限制线程数量

如果你还遇到其他常见问题,欢迎点击下方 Report content issue 链接并提交问题及对应绕过方案。