当前位置: 技术问答>linux和unix
页高速缓存 address_space的问题
来源: 互联网 发布时间:2016-07-29
本文导语: 每个inode都有一个address_space对象?由该address_space来维护该inode所拥有的所有页缓存? 不知道我的理解是不是对的 如果是对的 那么每个inode都需要一个address_space对象,每个inode维护一个基树,开销岂不是很大? 还是...
每个inode都有一个address_space对象?由该address_space来维护该inode所拥有的所有页缓存?
不知道我的理解是不是对的
如果是对的 那么每个inode都需要一个address_space对象,每个inode维护一个基树,开销岂不是很大?
还是系统维护一个大的基树,然后每个inode的基树都挂在上面?
请高手指点。
不知道我的理解是不是对的
如果是对的 那么每个inode都需要一个address_space对象,每个inode维护一个基树,开销岂不是很大?
还是系统维护一个大的基树,然后每个inode的基树都挂在上面?
请高手指点。
|
lz的理解很对
inode都有一个address_space对象,见inode的结构体定义,由该address_space来维护该inode所拥有的所有页缓存。
确实是每一个inode维护一个基树,这样在一个巨大文件中可以实现缓存页快速寻找
inode都有一个address_space对象,见inode的结构体定义,由该address_space来维护该inode所拥有的所有页缓存。
确实是每一个inode维护一个基树,这样在一个巨大文件中可以实现缓存页快速寻找
|
lkd2上说
2.6以前的内核,页高速缓存是通过一个维护了系统所有的全局散列表进行检索,效率很低,
因为要用锁保护这么大的一片全局散列表,锁争用要更严重,同时散列表太大,但其实只需要跟当前文件相关的页,如果查找失败更糟糕,意味着需要遍历指定散列键值对应的整个链表。
这样看的话,“还是系统维护一个大的基树,然后每个inode的基树都挂在上面? ”是不会被使用的方法
我不懂这个基树的算法有多牛x,至少比以前的散列表好
如果文件很小的话,基树也会很小,查找起来也更迅速
在linux中有没有对小文件的页缓冲的机制?
---------------
不知道啊
2.6以前的内核,页高速缓存是通过一个维护了系统所有的全局散列表进行检索,效率很低,
因为要用锁保护这么大的一片全局散列表,锁争用要更严重,同时散列表太大,但其实只需要跟当前文件相关的页,如果查找失败更糟糕,意味着需要遍历指定散列键值对应的整个链表。
这样看的话,“还是系统维护一个大的基树,然后每个inode的基树都挂在上面? ”是不会被使用的方法
我不懂这个基树的算法有多牛x,至少比以前的散列表好
如果文件很小的话,基树也会很小,查找起来也更迅速
在linux中有没有对小文件的页缓冲的机制?
---------------
不知道啊