当前内核的PageCache为什么要用Address Space?

1252阅读 0评论2010-11-22 almeydifer
分类:LINUX

今天我查了下<> 2rd, 中文版。

2.6版本以前,内核用的是一个全局的hash表进行检索 (应该是是暗指所有的文件缓存页放在统一的链表上),

现在为什么要用address space来取代hash呢?

第217页,谈到了一下几个原因:

1.锁的竞争会非常大。
2.搜索的范围会非常大。
3.如果搜索操作失败了,此时会去磁盘内读数据。因为搜索失败之前必定要搜索整个hash链表,所以开销非常大。
4.hash表更加耗内存。

第四点个人不是很明白,忘知情者告知。

并且,大家能够给一个原来内核实现PageCache的版本给个示意链接吗?



上一篇:二进制日志(Binary Log )格式
下一篇:MySQL 性能调优