Размер ZFS ARC против целевого размера
Я пытаюсь понять внутреннюю работу ZFS ARC. Однако меня смущают несколько вещей:
фактический (
zfs:0:arcstats:size
) против целевого размера (zfs:0:arcstats:c
). Я понимаю, что фактический размер выделяется и хранит кэшированное содержимое. Но каков тогда целевой размер? В чем разница между этими двумя?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
,для чего используется дроссель с памятью дуги?
Спасибо за любые ответы / указатели.
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, я не уверен. Сожалею.
Надеется, что это помогает!