beyondfool 发表于 2009-08-26 23:24

一个关于随机读写与顺序读写的问题

一个关于随机读写与顺序读写的问题

1.随机读是不是比顺序读速度快?
2.随机写是不是比顺序写慢?
3.存储阵列的随机读写是不是比顺序读写性能差
4.为什么?

THANKS!

xiaophedap 发表于 2009-08-27 01:20

1. 随机读肯定比顺序读要慢,因为顺序读有预读到Cache中的动作,增大了Cache的命中率
2. 应该说,如果Cache足够大,随机写和顺序写都是一样快,都是写到Cache算完成(裸设备除外);如果Cache不够大,则要看Raid的划分,和随机写与顺序写没有必然的关系
3. 第三个问题的答案来源于1 和 2 问题的回答
4. 每个都说明了原因。

冬瓜头 发表于 2009-08-27 08:41

关于第二点,不能绝对来说。理论上是可以这么说,但是实际测试中,即便cache足够大,随即写依然是慢于连续写,其中缘由很可能在于cache的算法,随即写要比连续写耗费更多的算法流程,其中buffer,queue,pool等要素,控制器在一定程度上安排好之后才会返回ack给主机,这样致使随即写还是比连续写要慢。欢迎继续针对这个问题讨论。

beyondfool 发表于 2009-08-30 19:40

硬盘与磁带相比,硬盘读写速度比磁带快,原因就是硬盘是随机读写,而磁带是顺序读写,这怎么解释?

wolfheader 发表于 2009-08-30 22:12

原帖由 beyondfool 于 2009-8-30 19:40 发表 http://bbs2.chinaunix.net/images/common/back.gif
硬盘与磁带相比,硬盘读写速度比磁带快,原因就是硬盘是随机读写,而磁带是顺序读写,这怎么解释?

单个硬盘不一定比单个磁带的写速度快,读速度硬盘肯定比磁带快的多

前面的比较随机和顺序都是比较在硬盘这种索引和扇区+cache的机制下,和磁带这种机械的查找物理位置的方式没有可比性~

wolfheader 发表于 2009-08-30 22:16

原帖由 冬瓜头 于 2009-8-27 08:41 发表 http://bbs2.chinaunix.net/images/common/back.gif
关于第二点,不能绝对来说。理论上是可以这么说,但是实际测试中,即便cache足够大,随即写依然是慢于连续写,其中缘由很可能在于cache的算法,随即写要比连续写耗费更多的算法流程,其中buffer,queue,pool等 ...

但是写入就写到cache之后就返回给server成功了,所以2楼老大说的cache足够大的情况下,应该是成立的吧,实际上不行是因为cache占用100%后会计算一下增加命中率,还有你说的那些来释放cache,但是“假设cache足够大”情况下cache根本不需要释放,慢慢往硬盘写,反正cache永远不满:mrgreen:

冬瓜头 发表于 2009-08-31 08:55

数据并不是扔到cache随便哪地方就完事ack的,需要经过一定的路径到特定的buffer中才能返回ack,如果真的从driver层拿过来就ack,那倒是没区别了。不过这个也得看产品设计,我们只从实际结果来判断,实际给出的结果不可否认。

wolfheader 发表于 2009-08-31 09:07

原帖由 冬瓜头 于 2009-8-31 08:55 发表 http://bbs2.chinaunix.net/images/common/back.gif
数据并不是扔到cache随便哪地方就完事ack的,需要经过一定的路径到特定的buffer中才能返回ack,如果真的从driver层拿过来就ack,那倒是没区别了。不过这个也得看产品设计,我们只从实际结果来判断,实际给出的结 ...

是,本来那个假定也不成立,cache不管多大,为了提高命中率总是很满的

beyondfool 发表于 2009-09-03 07:12

磁盘读速度比磁带快,是不是就是由于磁盘是随机读,磁带是顺序读?

冬瓜头 发表于 2009-09-03 08:34

ls概念有点混乱。我估计你说的磁盘时随机读的意思是说磁盘可以random acess,磁带不能做到和磁盘一样,的确。但是这不是磁盘比磁带快的理由。磁盘每分成千上万转,白忙活了?
页: [1] 2
查看完整版本: 一个关于随机读写与顺序读写的问题