IT技术博客大学习 共学习 共进步

标签:DirectIO

共 1 篇相关文章

IT 浏览 3,420

BufferedIO和DirectIO混用导致的脏页回写问题

问: 我测试发现,如果cp一个文件,然后direct io读这个文件,会消耗很长时间。 我猜测dio不能用page cache,而这个文件cp以后都在cache里面,要强制刷到磁盘,才能读? 我cp这个文件很大,超过256M 由于数据文件默认是用bufferedio方式打开的,也就是说它的数据是先缓冲在pagecache里面的,写入的数据会导致大量的脏页,而且这部分数据如果内核内存不紧张的话,是一直放在内存里面的的。我们知道directio是直接旁路掉pagecache直接发起设备IO的,也就是说在发起IO之前要保证数据是先落地到介质去,所以如果文件比较大的话,这个时间会比较长。