html tool

2017年10月30日星期一

文件系统-笔记


裸IO与直接IO的区别



裸IO 绕过了文件系统存数据, 直接IO只是绕过了缓冲使用文件系统(比同步写少了 O_SYNV的保护)。


写时复制与原子操作





写时复制的步骤是,写新块完成后,替换旧块到空闲列表中;

保证了文件系统的宕机时的文件完整性,把随机写改成了连续写从而改善了写的性能,这个是伴随文件系统日志产生的。


从逻辑IO到物理IO被放大的例子和原因






fsync 对比O_SYNC的优势






文件系统延时的测量位置, 只要为如下几个,应用程序,系统调用接口,VFS, 直接在文件系统上,对应上文中的,
文件系统延时消耗在文件系统,内核磁盘I/O子系统(包含VFS和系统调用接口) 和等待磁盘设备

 

对用测量延时的几个参数的主要
对应缓存命中率大于99%的文件系统,单位时间平均值会被缓存命中率淹没,而高延时为离散点,要配合全分布和单操作的延时来查看,这个和测量过程中的其他值是一样的查找过程,但是后期不是忽略而是进一步研究。

非阻塞IO



这里的例子是web server的stat() 查看文件,确保了文件在缓存中没有修改。
这里的使用应该多是读取吧?!因为写操作的在文件系统默认就是非同步的,如果需要同步写要使用O_SYNC标准的,使用强制同步写的。原文中提到使用非阻塞IO的目的是对多线程程序节省了创建多余线程的成本,这个还真没有考虑过,这么精细的使用线程,感觉都想实时嵌入式的使用方式了。

没有评论:

发表评论