当前位置: 技术问答>linux和unix
目录里有几万个文件,第一次访问很慢
来源: 互联网 发布时间:2016-10-13
本文导语: 如题,有方法优化吗? 谢谢。 | 在linux文件系统中,inode列表记录的是该文件系统中所有的文件的inode号码,inode结构中有一个指向数据区的一个指针,每一次当I/O请求打开一个文件时,系统根...
如题,有方法优化吗?
谢谢。
谢谢。
|
在linux文件系统中,inode列表记录的是该文件系统中所有的文件的inode号码,inode结构中有一个指向数据区的一个指针,每一次当I/O请求打开一个文件时,系统根据文件描述符获得inode号码,然后根据inode中的数据指针,来索引数据区的数据,由于数据在磁盘上,所以要从磁盘缓冲区将数据复制到系统缓存中,这个过程发生的可能就是那几个I/O调度策略,如,read ahead,当操作系统完成了用户的I/O请求后,在以后的一段时间内,系统不会立即把文件从内存页面中清除,这个也是一种加速I/O的策略,这种策略,也应用到cache和内存之间的数据交换中,所以,如果用户发现要对同一个文件进行第二次读取操作时,就会发现,比第一次要快的多,因为,这一次是直接的从内存页面中提取数据的。一般想要加速文件读取的话,可以使用磁盘映射的方式读文件,当文件数量太多的时候,可以根据需求先加载必要的文件,然后再加载其他的文件,毕竟,一次读取上万个文件,再好的算法,策略,对用户来说都是需要长久等待的,除非你用个什么巨型机。。。