【发布时间】:2018-04-07 02:09:26
【问题描述】:
我正在查看 Kafka 文档,尤其是 Persistence 部分:
kafka doc - persistence section
如果我在最后几行中理解它说 Kafka 在数据到达时将数据写入磁盘而不是使用 RAM。这听起来对我来说真的很奇怪(在磁盘上写入不是繁重的操作?)但显然我信任 kafka 开发人员。首先,我想确认一下。
然后,假设它并验证它,我在一台 4GB-200GB 的机器上执行了一个简单的任务,数据流为 500kb/s,持续了几分钟,我生成了 ram 内存使用率 (%) 和磁盘空间使用率的图表 (兆)。你可以在这里找到一张图片:
(流在 125 秒被摄取,并在 870 秒左右结束)
据我了解,我希望看到一个关于磁盘空间使用情况的线性递减图(由于数据到达时逐渐占用空间),而不是我无法解释为什么显示那些表明在相应的秒内没有其他空间被占用。
此外,继续在文档中,有以下部分:
这似乎解释了与“持久性”部分相反的行为。它说Linux使用页面缓存(我想存储在RAM中)来提供磁盘缓存。这可以解释第二张图中普通区域的存在,但它违背了 Kafka 避免写入易失性内存的原则。
我真的很困惑。
谢谢你, 安德烈亚
【问题讨论】:
标签: filesystems apache-kafka ram