操作系统缓存与磁盘性能关系-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

操作系统缓存与磁盘性能关系

宝惜 2018-12-21 11:41:41 1667

操作系统缓存与磁盘性能关系?
想请哪位专家科普一下,操作系统缓存与磁盘性能关系。

缓存
分享到
取消 提交回答
全部回答(2)
  • 一溜
    2019-07-17 23:23:20
    已采纳

    对程序来说,读写文件的快慢,是操作系统提供的能力。
    在写的时候,操作系统一般会有缓存,称buffer,然后定期刷到磁盘。所以操作系统内存(这部分内容叫buffer)足够的情况下,程序短暂的写会表现得很好; 如果是长期持续写入,那缓存作用不大,写入能力就基本等同于磁盘的写能力;
    在读的时候,如果要读取的内容是之前写入的,数据已经在内存,这部分内容叫cache,那么读取就不需要去读磁盘,这个时候对程序来说,读操作等同于读内存,速度很快;如果文件内容不在缓存,则读取速度等同于读取磁盘。所以一般在Linux操作系统,第一次读文件可能慢,但第二次是飞快的,因为内容已经进入cache了。

    1 0
  • ecs西邪
    2019-07-17 23:23:20

    一溜的回复很精彩,把操作系统的缓存特性说的非常清楚。
    那怎么看待磁盘性能与操作系统的缓存之间的关系呢:
    通常场景是数据读写都走系统缓存,由内核定期刷到磁盘,那么如果为了测试磁盘性能,拼命地去调用read或者write函数,那不是真正磁盘的性能,sysbench默认磁盘性能测试就是调用pread函数和pwrite函数,所以没有真正测试到磁盘性能。
    如何正确测试磁盘性能,那就要绕开缓存,直接读写磁盘,通过设置文件的访问模式为 O_DIRECT,就可以真正测试磁盘性能。

    1 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题
推荐课程