我的ZFS ARC和L2ARCcaching中有什么?

我在家里有一个简单的ZFS设置,4个磁盘镜像,8GB RAM和120GB Intel L225C的Intel X25-M SSD。 我运行zpool add poolname cache cXtXdX然后生成负载,并通过运行zpool iostat -v mypool热切跟踪升温过程。 几个小时后,L2ARC已经满了,但究竟是什么被caching了?

我可以偷看,看看我的ARC / L2ARC中有什么? 我知道某些块会映射到多个文件系统(由于快照,克隆或重复数据删除),但我仍然想要对这些统计信息进行采样:

  • 被caching的块的types:元数据。 iSCSI,数据。 等等
  • 年龄:在L2ARC中每块有多长时间
  • 哪些文件:caching一些内容的目录
  • 文件系统崩溃:GBcaching每个文件系统
  • 非易失性块的位置(其中drive / vdev)

我会想象zdb和/或dtrace会成为日常工具,但不知道从哪里开始。

这是一个已更新的脚本,以反映L2ARC中的数据。

请参阅: http : //blog.harschsystems.com/2010/09/08/arcstat-pl-updated-for-l2arc-statistics/

来源可在这里: https : //github.com/mharsch/arcstat

我可能会争辩说,你不应该关心caching中的内容,而是最有效的东西是否被caching了。 也就是说,ARCcaching正在被用于最大的效率?

我在工作中运行了一个小规模的(9TB)ZFS实现,我发现本Rock Rock的工具arc_summary.pl和Sun的arcstat.pl ,在这个cuddletech博客文章中都有详细的介绍,非常有用。

我知道它不直接回答你的问题,关于ARCcaching究竟是什么,但是这些应该给你一些关于如何使用caching的可靠数据,以及是否需要更多的内存/ SSD空间。