config - RocksDB配置建议
问题描述
我正在寻找有关我的 RocksDB 配置的建议。我们的用例是将 100GB 的键值对加载到 Rocksdb 中,并且在运行时只为数据库中的键值对提供服务。密钥为 32 字节,值大小为 1.6 KB。
我们现在拥有的是我们使用 hadoop 使用 SstFileWriter api 生成一个 100GB 的 sst 文件并将其保存在 S3 中。出现的每个新服务器都使用:db.ingestExternalFile(..) 来摄取文件。我们使用 i3.large 机器(15.25 GiB | 2 vCPUs | 475 GiB NVMe SSD)。给定当前配置,来自 Rocksdb 的 P95 和 avg 响应:
- 块大小 = 2KB
- 格式版本 = 4
- Read-Write=100% 在运行时读取
约为 1 毫秒,但 P99 和 PMAX 非常糟糕。我们正在寻找某种方法来减少大约 10 倍 P95 的 PMAX 响应时间。
谢谢。
解决方案
您可以使用 tmpfs 将所有 db 加载到内存中吗...基本上只是将数据复制到 RAM 中看看是否有帮助....在单独的作业中压缩 sst 文件而不是在启动时摄取可能是有意义的。 ..这可能需要更改您的机器配置,以便更多地面向 RAM 而更少地面向 SSD 存储
推荐阅读
- java - 列出文件夹和文件
- python - 在 OSmnx 中将图形投影到 espg:4326 上的最快方法
- javascript - 旅行商问题实现语言
- mongodb - MongoDB 在许多字段上按日期聚合
- java - 即使在完成样本测试用例后也无法得到正确答案
- google-apps-script - 嵌入在谷歌表中的谷歌脚本添加一个菜单项
- python-3.x - 如何在列表列表中查找值的频率并通过共同值与另一个现有列表组合?
- wpf - 调整 WPF 图表工具包 ColumnSeries (System.Windows.Controls.DataVisualization.Charting)
- javascript - 反应:无法使用索引访问组件状态中的数组数据
- javascript - 如何让我的自动图像轮播循环回到第一个图像而不暴露第二个图像