一个关于随机读写与顺序读写的问题
一个关于随机读写与顺序读写的问题1.随机读是不是比顺序读速度快?
2.随机写是不是比顺序写慢?
3.存储阵列的随机读写是不是比顺序读写性能差
4.为什么?
THANKS! 1. 随机读肯定比顺序读要慢,因为顺序读有预读到Cache中的动作,增大了Cache的命中率
2. 应该说,如果Cache足够大,随机写和顺序写都是一样快,都是写到Cache算完成(裸设备除外);如果Cache不够大,则要看Raid的划分,和随机写与顺序写没有必然的关系
3. 第三个问题的答案来源于1 和 2 问题的回答
4. 每个都说明了原因。 关于第二点,不能绝对来说。理论上是可以这么说,但是实际测试中,即便cache足够大,随即写依然是慢于连续写,其中缘由很可能在于cache的算法,随即写要比连续写耗费更多的算法流程,其中buffer,queue,pool等要素,控制器在一定程度上安排好之后才会返回ack给主机,这样致使随即写还是比连续写要慢。欢迎继续针对这个问题讨论。 硬盘与磁带相比,硬盘读写速度比磁带快,原因就是硬盘是随机读写,而磁带是顺序读写,这怎么解释? 原帖由 beyondfool 于 2009-8-30 19:40 发表 http://bbs2.chinaunix.net/images/common/back.gif
硬盘与磁带相比,硬盘读写速度比磁带快,原因就是硬盘是随机读写,而磁带是顺序读写,这怎么解释?
单个硬盘不一定比单个磁带的写速度快,读速度硬盘肯定比磁带快的多
前面的比较随机和顺序都是比较在硬盘这种索引和扇区+cache的机制下,和磁带这种机械的查找物理位置的方式没有可比性~ 原帖由 冬瓜头 于 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: 数据并不是扔到cache随便哪地方就完事ack的,需要经过一定的路径到特定的buffer中才能返回ack,如果真的从driver层拿过来就ack,那倒是没区别了。不过这个也得看产品设计,我们只从实际结果来判断,实际给出的结果不可否认。 原帖由 冬瓜头 于 2009-8-31 08:55 发表 http://bbs2.chinaunix.net/images/common/back.gif
数据并不是扔到cache随便哪地方就完事ack的,需要经过一定的路径到特定的buffer中才能返回ack,如果真的从driver层拿过来就ack,那倒是没区别了。不过这个也得看产品设计,我们只从实际结果来判断,实际给出的结 ...
是,本来那个假定也不成立,cache不管多大,为了提高命中率总是很满的 磁盘读速度比磁带快,是不是就是由于磁盘是随机读,磁带是顺序读? ls概念有点混乱。我估计你说的磁盘时随机读的意思是说磁盘可以random acess,磁带不能做到和磁盘一样,的确。但是这不是磁盘比磁带快的理由。磁盘每分成千上万转,白忙活了?
页:
[1]
2