ZFS ARC 大小与目标大小

Gue*_*est 6 zfs performance-monitoring performance-counters

我试图了解 ZFS ARC 的内部工作原理。但是,我对几件事感到困惑:

  1. 实际 ( zfs:0:arcstats:size) 与目标大小 ( zfs:0:arcstats:c)。我知道实际大小已分配并存储缓存内容。但是,目标大小是多少?这两者有什么区别?

  2. mru_size ( zfs:0:arcstats:p) + mfu_size ( zfs:0:arcstats:c- zfs:0:arcstats:p) 与 data_size ( zfs:0:arcstats:data_size)。data_size 不应该是 mru_size 和 mfu_size 的总和吗?正确的 ARC 尺寸细分是什么?根据http://lists.freebsd.org/pipermail/freebsd-fs/2012-June/014643.html,它应该是hdr_size + data_size (mru_size + mfu_size + anon_size) + other_size + l2_hdr_size,但它没有任何意义,因为mru_size通常大于data_size.

  3. 电弧记忆节流阀是做什么用的?

感谢您提供任何答案/指示。

Aus*_*rsh 0

我相信 ARC 的目标大小是它可以增长到多大,而实际大小是它当前使用的量。我在我的服务器上看到了这个,我给了它 12 gig,但它实际上不会达到 12 gig,除非我点击它。它通常喜欢参加 10-11 场演出。

这是解释内存限制的链接。看起来 ZFS 最初并没有被编程为吃掉你所有的内存,这很可能就是它存在的原因。(http://www.zfsbuild.com/2012/04/18/let-zfs-use-all-of-your-ram/

关于#2,我不确定。对不起。

希望这有帮助!