美文网首页程序员
为什么说Kafka使用磁盘比内存快

为什么说Kafka使用磁盘比内存快

作者: 小程故事多 | 来源:发表于2016-01-25 22:58 被阅读4933次

学习过[跟我学Kafka源码之LogManager分析]的同学一定会问为什么Kafka大量使用了磁盘作为传统意义的缓存。

其实Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外。在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平。

而且Linux对于磁盘的读写优化也比较多,包括read-ahead和write-behind,磁盘缓存等。如果在内存做这些操作的时候,一个是JAVA对象的内存开销很大,另一个是随着堆内存数据的增多,JAVA的GC时间会变得很长,使用磁盘操作有以下几个好处:

  • 磁盘缓存由Linux系统维护,减少了程序员的不少工作。
  • 磁盘顺序读写速度超过内存随机读写。
  • JVM的GC效率低,内存占用大。使用磁盘可以避免这一问题。
  • 系统冷启动后,磁盘缓存依然可用。

相关文章

  • 为什么说Kafka使用磁盘比内存快

    学习过[跟我学Kafka源码之LogManager分析]的同学一定会问为什么Kafka大量使用了磁盘作为传统意义的...

  • Redis为什么这么快?

    Redis为什么这么快? 概述 Redis的QPS可达10w/s,可简单看下图所示 基于内存实现 内存的速度比磁盘...

  • 干货:实时数据库,内存数据库,关系型数据库比较

    内存数据库 内存数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺...

  • Spark为什么比Hadoop快?

    为什么Spark比Hadoop快时候,得到的答案往往是:Spark是基于内存的计算,而Hadoop是基于磁盘的计算...

  • Kafka 为什么快?

    前言 本文只想从作者本身的认识来谈谈 kafka 为什么会这么快?我们都知道 kafka 是基于磁盘的,但是他的存...

  • Redis问题汇总

    为什么要使用Redis ? 速度快 ,走内存, 不用去查硬盘,内存速度比硬盘快很多 。可以利用分布式线程安全的特性...

  • 磁盘操作

    磁盘剩余空间 磁盘使用量 空闲内存

  • Kafka vs RocketMQ

    本文对比说明Kafka和RocketMq的区别, 目的:为了说明Kafka为什么比RocketMq快 1. 设计理...

  • Redis为什么这么快?

    我们都知道Redis很快,它QPS可达10万(每秒请求数) 基于内存实现 我们都知道内存读写是比磁盘读写快很多的。...

  • 消息队列监控项整理【实战笔记】

    目录 一、系统监控项 1.CPU CPU使用率、CPU Load、 2.内存 内存使用率 3.磁盘 磁盘使用率、磁...

网友评论

    本文标题:为什么说Kafka使用磁盘比内存快

    本文链接:https://www.haomeiwen.com/subject/bckdkttx.html