1

命令sar中有一个名为dentunusd的项目。这意味着:目录缓存中未使用的缓存条目数。

我想知道:

  • 什么是缓存条目?
  • 什么是目录缓存?
  • 他们在哪里?

谁能提供一些材料?

4

1 回答 1

3

来自,http://www.tldp.org/LDP/tlk/fs/filesystem.html

9.2.9 目录缓存

为了加快对常用目录的访问,VFS 维护了目录条目的缓存。

当目录被真实文件系统查找时,它们的详细信息被添加到目录缓存中。下次查找同一目录时,例如列出它或打开其中的文件,则会在目录缓存中找到它。只有较短的目录条目(最多 15 个字符长)被缓存,但这是合理的,因为较短的目录名称是最常用的目录名称。例如,/usr/X11R6/bin 在 X 服务器运行时经常被访问。

目录缓存由一个哈希表组成,其中的每个条目都指向具有相同哈希值的目录缓存条目列表。散列函数使用保存文件系统的设备的设备号和目录的名称来计算散列表的偏移量或索引。它允许快速找到缓存的目录条目。当在缓存中查找条目需要很长时间甚至找不到条目时,使用缓存是没有用的。

为了保持缓存有效和最新,VFS 保留最近最少使用 (LRU) 目录缓存条目的列表。当一个目录条目第一次被放入缓存时,也就是它第一次被查找时,它被添加到第一级 LRU 列表的末尾。在完整缓存中,这将替换 LRU 列表前面的现有条目。当再次访问目录条目时,它被提升到第二个 LRU 缓存列表的后面。同样,这可能会取代二级 LRU 缓存列表前面的缓存二级目录条目。这种在一级和二级 LRU 列表前面的条目的置换很好。条目位于列表前面的唯一原因是它们最近没有被访问过。如果他们有,他们将更接近列表的后面。二级 LRU 缓存列表中的条目比一级 LRU 缓存列表中的条目更安全。这是本意,因为这些条目不仅被查找过,而且被反复引用。

于 2014-02-24T15:36:47.353 回答