Назад | Перейти на главную страницу

Размер ZFS ARC против целевого размера

Я пытаюсь понять внутреннюю работу 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) vs 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. для чего используется дроссель с памятью дуги?

Спасибо за любые ответы / указатели.

Я считаю, что целевой размер ARC - это то, до какого размера он может вырасти, а фактический - это то, сколько он использует в настоящее время. Я вижу это на своем сервере, где я даю ему 12 гигов, но на самом деле он не будет размещаться на 12 гигах, если я не нажму его. И обычно любит сидеть на 10-11 гигах.

Вот ссылка, чтобы объяснить дроссель памяти. Похоже, ZFS изначально не была запрограммирована на то, чтобы съесть всю вашу память, скорее всего, поэтому она там есть. (http://www.zfsbuild.com/2012/04/18/let-zfs-use-all-of-your-ram/)

А насчет №2 я не уверен. Сожалею.

Надеюсь, это поможет!