Размер 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. для чего используется дроссель с памятью дуги?

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

2 ответа

Что ж, я опоздал на несколько лет, но надеюсь, что это поможет другим.

  • — целевой размер ARC. По умолчанию это 50% от общего объема оперативной памяти, но оно может уменьшаться по требованию, если в системе не хватает памяти.
  • size— текущий размер ARC. При наличии достаточного количества времени он будет иметь тенденциюc
  • data_size— размер кэшированных пользовательских данных. Он не включает метаданные (и это причина, по которой он может быть значительно меньше, чем MRU и/или MFU, когда приходится работать с большой нагрузкой метаданных)
  • metadata_sizeэто размер кэшированных метаданных
  • hdr_size— размер заголовков L2ARC, хранящихся в основном ARC.
  • overhead_sizeэто размер различных буферов, которые выделяются при распаковке dentries

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

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

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

Надеется, что это помогает!

Другие вопросы по тегам