linux - 使用命令 'dentunusd' 时关于 'sar' 的一些问题?

标签 linux caching buffer sar

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

我想知道:

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

谁能提供一些 Material ?

最佳答案

来自 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 缓存列表中的条目更安全。这是有意为之,因为这些条目不仅已被查找,而且已被反复引用。

关于linux - 使用命令 'dentunusd' 时关于 'sar' 的一些问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605028/

相关文章:

java - Guava 缓存,如何在删除时阻止访问

io - 在 Julia 中设置多个 I/O 缓冲区的最佳方法是什么?

linux - 无法在 syslog 消息中获取 Rsyslog 结构化数据

linux - 更改主机名 bash 脚本

linux删除重复值的命令

php - 在 RAM + 服务器性能中缓存 MaxMind City 二进制数据库

javascript - 如何使用 AngularJS $templateCache.get()?

image - 用minio上传图像缓冲区

php - 对我在用 PHP 运行的 Web 服务器中缓冲数据有什么建议吗?

linux - 如何找到时间编写 sh 脚本