- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图找出为什么我的 kafka-streams 应用程序内存不足。我已经发现 rocksDB 正在消耗大量 native 内存,我尝试使用以下配置来限制它:
# put index and filter blocks in blockCache to avoid letting them grow unbounded (https://github.com/facebook/rocksdb/wiki/Block-Cache#caching-index-and-filter-blocks)
cache_index_and_filter_blocks = true;
# avoid evicting L0 cache of filter and index blocks to reduce performance impact of putting them in the blockCache (https://github.com/facebook/rocksdb/wiki/Block-Cache#caching-index-and-filter-blocks)
pinL0FilterAndIndexBlocksInCache=true
# blockCacheSize should be 1/3 of total memory available (https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning#block-cache-size)
blockCacheSize=1350 * 1024 * 1024
# use larger blockSize to reduce index block size (https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide#difference-of-spinning-disk)
blockSize=256 * 1024
但内存使用似乎仍然无限增长,我的容器最终被 OOMKilled。
我使用 jemalloc 来分析内存使用情况(like described here)和结果清楚地表明 rocksDB 负责,但我不知道如何进一步限制 rocksDB 的内存使用。
我不知道它是否有帮助,但为了完整起见,这里是从正在运行的 rocksdb 实例收集的统计数据:
我很高兴得到任何提示
最佳答案
我找出了造成这种情况的原因。
我以为我的 kafka 流应用程序只有一个 rockDB 实例。但是每个流分区 有一个实例。所以这个配置:
blockCacheSize=1350 * 1024 * 1024
并不一定意味着 rocksDB 内存限制为 1350MB。如果应用程序有例如分配给它的 8 个流分区也有 8 个 block 缓存,因此最多可以占用 1350 * 8 = ~11GB 内存。
关于java - rocksdb 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56663008/
RocksDB声称可以存储任意数据,但API仅支持std::string类型。我要存储std::vector值,如果我想这样做,那么我必须将其转换为 std::string 。 是否有一种不太脆弱的方
我在 rocksdb 上工作,但无法获得可以告诉我关卡内文件大小最大限制的选项?如果一旦达到最大大小,文件将如何在 RocksDB 中拆分? 最佳答案 您正在寻找的选项是 target_file_si
我按照这里的说明操作:http://pyrocksdb.readthedocs.org/en/latest/installation.html 当我尝试 pip install git+git://g
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我通过 C API 使用 RocksDB。 我有一个测试程序,它打开数据库,执行 1,000 次写入(收集启动写入和回调之间的计时数据),执行 1,000 次读取,然后关闭。 这有效。平均写入时间约为
我在应用程序中使用 Rocksdb,关闭所有数据库实例后,我仍然看到正在运行的线程Rocksdb::ThreadPoolImpl::Impl::BGThread(无符号长整型) () 因此,当我关闭应
我在应用程序中使用 Rocksdb,关闭所有数据库实例后,我仍然看到正在运行的线程Rocksdb::ThreadPoolImpl::Impl::BGThread(无符号长整型) () 因此,当我关闭应
在多核服务器(或集群)上,希望在每个相互独立的核心上部署一个 RocksDB 数据库,即。不是在寻找分布式数据库。这可能吗? 对于每个内存数据库,它是否需要在运行时操作期间与存储通信,即。不是在启动或
我在多线程环境中使用 rocksdb。 我的所有线程都在执行 get()、put() 和 merge() 操作,可能使用相同的键。 rocks 是否为我提供任何内置同步?它是可配置的吗?我查看了文档和
我正在寻找 C++ 中的嵌入式数据存储引擎。 RocksDB 是一个键值存储。 我的数据非常同质。我有一定数量的类型(大约 20 个),并且存储了这些类型的许多实例(大约 100 万个)。 我认为数据
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我使用 rocksdb C++ API 并创建了一些 column_families。现在,我想创建一个自增列,所以我想获取列中的键总数,然后+1。有没有办法直接获取列的大小? 最佳答案 我不认为这是
我使用以下标志集编译我的代码 LIBS += $(EXT_DIR)/librocksdb.a -lrt -lsnappy -llz4 -lz librocksdb.a 生成的地方 PO
当我构建 RocksDB 时使用生成 200MB+ librocksdb.a 文件的 make static_lib,但是当我通过包管理器安装相同版本时(与 Brew 和 apt 相比), .a 文件
我试图找出为什么我的 kafka-streams 应用程序内存不足。我已经发现 rocksDB 正在消耗大量 native 内存,我尝试使用以下配置来限制它: # put index and filt
我想使用 RocksDB 的方式我觉得很不寻常。我想用它来降低内存中有大量字符串的应用程序的内存压力。原因是因为应用程序最终会扩展到需要数十 GB 的 RAM 来存储所有字符串的程度。这是一个仅 64
我读过有关 Redis 和 RocksDB 的资料,但我不了解 Redis 相对于 RocksDB 的优势。 我知道Redis是全内存的,RocksDB是内存的,用的是闪存。如果所有数据都适合内存,我
来自(稍微)过时的documentation on pyrocksdb ,它说: “如果你不想调用make install导出以下环境变量:” $ export CPLUS_INCLUDE_PATH=
我有一个 flink 作业 (scala),它基本上是从 kafka-topic (1.0) 读取数据,聚合数据(1 分钟事件时间滚动窗口,使用 fold 函数,我知道这是已弃用,但比聚合函数更容易实
MyRocks (MySql) 和 Cassandra 都使用 LSM 架构来存储它们的数据。所以我用 MyRocks 作为存储引擎在 MySql 和 Cassandra 中填充了大约 500 万行。
我是一名优秀的程序员,十分优秀!