【问题标题】:Suggestion on RocksDB ConfigurationRocksDB配置建议
【发布时间】:2020-06-11 17:53:58
【问题描述】:

我正在寻找有关我的 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 和平均响应:

  • 块大小 = 2KB
  • FormatVersion = 4
  • 读写=运行时 100% 读取

约为 1 毫秒,但 P99 和 PMAX 非常糟糕。我们正在寻找某种方法来减少 PMAX 响应时间,大约是 P95 的 10 倍。

谢谢。

【问题讨论】:

    标签: config rocksdb rocksdb-java


    【解决方案1】:

    您能否使用 tmpfs 将所有 db 加载到内存中...基本上只是将数据复制到 RAM 并查看是否有帮助 .... 在单独的作业中压缩 sst 文件而不是摄取可能是有意义的在启动时...这可能需要更改您的机器配置,以便更多地面向 RAM 而更少地面向 SSD 存储

    【讨论】:

    • 我无法将所有数据加载到内存中。数据大小约为 100 GB,内存约为 16 GB。 Think Rocks 默认使用 LRU 来决定在内存中保存什么。是的,我确实在单独的机器上压缩数据。
    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2018-04-30
    • 1970-01-01
    • 2010-09-21
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多