clickhouse - 如何提高 ClickHouse 服务器的启动时间?
问题描述
我正在评估 ClickHouse 在项目中的潜在用途的性能。到目前为止,写入性能一直令人鼓舞,但是当我运行测试并且不得不重新启动服务器几次时,我注意到一个可能成为硬性阻碍的问题:服务器启动时间在波动,并且大部分时间时代极高。
我的评估服务器包含 26 个数据库,包含大约 540 亿条记录,占用了 697.32 GB 的磁盘空间。
有了这么多数据,我的启动时间从低至 7 分 35 秒缩短到近 3 小时。
这是正常的吗?可以通过一些更高级的配置来解决吗?我做错了什么吗?因为,就目前而言,如此长的启动时间是一个阻碍。
解决方案
启动时间慢的主要原因是需要加载大量的元数据,这与数据文件的数量呈正相关。为了增加启动时间,您需要减少文件数量或获取更多内存以保留所有 dentry 和 inode 缓存。
我的评估服务器包含 26 个数据库,包含大约 540 亿条记录,占用了 697.32 GB 的磁盘空间。
我建议如下:
- 尝试以更粗略的方式调整当前数据分区方案
- 用于
OPTIMIZE TABLE <table> FINAL
压缩所有数据文件 - 将数据磁盘升级为 SSD 或高效 RAID,或使用 btrfs 等文件系统将元数据单独存储在快速存储上。
推荐阅读
- sql - 在我的 SQL 代码中获得 MAX 客户的最佳方式
- c# - 尝试连接到命令提示符并执行 put 操作
- java - 设置字节数组中的所有值
- python - groupby后如何替换异常值?
- pouchdb - Gatsby PWA - 在客户端 pouchDB 或 localStorage 上本地存储数据?
- java - 在Java中将字符串转换为字符串数组的最快方法
- google-apps-script - 单元格值更改为 setValue 未被 getDataRange().getValues() 识别
- python - 当字符串中有小括号时,如何使用正则表达式匹配字符串?
- google-apps-script - 检查工作表名称并选择有效的工作表名称
- java - 如何在 Hibernate 中级联更新到子实体