命令 sar 中有一个名为 dentunusd 的项目。 它表示:目录高速缓存中未使用的高速缓存条目数。
我想知道:
有谁可以提供一些材料?
答案 0 :(得分:1)
来自,http://www.tldp.org/LDP/tlk/fs/filesystem.html
9.2.9目录缓存
为了加快对常用目录的访问,VFS维护目录条目的缓存。
当真实文件系统查找目录时,它们的详细信息将添加到目录缓存中。下次查找同一目录时,例如列出它或打开其中的文件,然后它将在目录缓存中找到。缓存只有短目录条目(最多15个字符),但这是合理的,因为较短的目录名称是最常用的目录名称。例如,在X服务器运行时,通常会访问/ usr / X11R6 / bin。
目录高速缓存由散列表组成,散列表的每个条目都指向具有相同散列值的目录高速缓存条目列表。哈希函数使用包含文件系统的设备的设备号和目录的名称来计算哈希表中的偏移量或索引。它允许快速找到缓存的目录条目。当缓存中的查找花费太长时间来查找条目,甚至找不到条目时,使用缓存是没有用的。
为了使缓存保持有效和最新,VFS保留最近最少使用(LRU)目录缓存条目的列表。当首次将目录条目放入高速缓存时(即首次查找时),将其添加到第一级LRU列表的末尾。在完整缓存中,这将替换LRU列表前面的现有条目。当再次访问目录条目时,它将被提升到第二个LRU缓存列表的后面。同样,这可以取代二级LRU高速缓存列表前面的高速缓存的二级目录条目。这可以取代一级和二级LRU列表前面的条目。条目位于列表前面的唯一原因是它们最近未被访问过。如果他们有,他们会更接近列表的后面。第二级LRU缓存列表中的条目比第一级LRU缓存列表中的条目更安全。这是意图,因为这些条目不仅被查阅,而且它们也被反复引用。