memory-leaks - 使用kafka流时Java堆外的内存泄漏
问题描述
我使用 kafka 流加入流,但堆外内存失控。
我使用 jemalloc 来查找原因。首先,rocksdb 使用堆外内存的比例很高
1806344172 67.4% 67.4% 1806344172 67.4% rocksdb::BlockFetcher::ReadBlockContents
588400270 22.0% 89.4% 588400270 22.0% os::malloc@921040
132120590 4.9% 94.3% 132120590 4.9% rocksdb::Arena::AllocateNewBlock
50331648 1.9% 96.2% 50331648 1.9% init
17587683 0.7% 96.8% 17981107 0.7% rocksdb::VersionSet::ProcessManifestWrites
15688131 0.6% 97.4% 15688131 0.6% rocksdb::WritableFileWriter::WritableFileWriter
12943699 0.5% 97.9% 12943699 0.5% rocksdb::port::cacheline_aligned_alloc
11800800 0.4% 98.4% 12588000 0.5% rocksdb::LRUCacheShard::Insert
8784504 0.3% 98.7% 1811954485 67.6% rocksdb::BlockBasedTable::PartitionedIndexIteratorState::NewSecondaryIterator
7606272 0.3% 99.0% 7606272 0.3% rocksdb::LRUHandleTable::Resize
时间长了就变了
Total: 4502654593 B
3379447055 75.1% 75.1% 3379447055 75.1% os::malloc@921040
620666890 13.8% 88.8% 620666890 13.8% rocksdb::BlockFetcher::ReadBlockContents
142606352 3.2% 92.0% 142606352 3.2% rocksdb::Arena::AllocateNewBlock
129603986 2.9% 94.9% 129603986 2.9% rocksdb::port::cacheline_aligned_alloc
67797317 1.5% 96.4% 67797317 1.5% rocksdb::LRUHandleTable::Resize
50331648 1.1% 97.5% 50331648 1.1% init
32501412 0.7% 98.2% 230760042 5.1% Java_org_rocksdb_Options_newOptions__
18600150 0.4% 98.6% 19255895 0.4% rocksdb::VersionSet::ProcessManifestWrites
16393216 0.4% 99.0% 16393216 0.4% rocksdb::WritableFileWriter::WritableFileWriter
5629242 0.1% 99.1% 5629242 0.1% updatewindow
os::malloc@921040 消耗了大部分内存,并且一直在增长
所以任何人都可以提供一些帮助吗?
解决方案
推荐阅读
- python - 使用 SimpleITK 执行 3D 共定位和距离测量
- javascript - 你如何实现一个计时器来计算用户在页面上提交表单所花费的时间
- asp.net-core - EF Core 3.0 使用 DbSet.Add 方法时反转 SQL 插入语句
- node.js - 方法 .save() 在 adonis/node.js 中插入而不是更新我的模型
- javascript - 当翻译在另一个集合中时,如何在 MongoDB 上处理 i18n(带回退)?
- twig - Twig:如何防止在 GET 参数中编码方括号
- python - python中的正则表达式,需要从字符串中打印网站名称
- vba - 如何在 Word 中的 VBA 中的一个函数中搜索多个单词?
- python - 在 if/then 语句中使用错误作为条件
- javascript - Electron 应用程序显示白屏但在 CentOS 8 上呈现