wtysos11 / blogWiki

Use to store public paper and organize them.
18 stars 4 forks source link

机械硬盘的读取问题 #225

Open wtysos11 opened 3 years ago

wtysos11 commented 3 years ago

字节广州提前批的三面问到的一个问题的原理(应该是),当时面试官问在没有压缩的情况下,为什么同样是复制文件,一个是一堆文件组成在一起大文件,一个是分散的小文件,问什么前者会比后者快。 当时因为在搞redis的pipeline,所以下意识想到的就是系统调用。当然,实际上应该不是系统调用,现代操作系统中磁盘到内存好像是有DMA这种操作,而且系统调用的耗时也不主要。主要应该有两个,一个是操作系统的文件系统可能会造成数据不连续存储(索引结构与页碎片的问题,对于大文件来说肯定是没有页内碎片这种东西的),另一个是机械硬盘连续读写的性能差距问题。

机械硬盘连续读和随机读写差距是非常大的。连续读的耗时只有内存级别,但是随机读写的话涉及到磁盘寻道,耗时会更久

https://www.zhihu.com/question/48254780

现实应用的话应该就是kafka了,我印象中kafka就是充分使用机械硬盘的连续读性能,达到了内存级别的耗时。