Что находится в моих кэшах ZFS ARC и L2ARC?

У меня дома простая настройка ZFS, четыре зеркальных диска, 8 ГБ оперативной памяти и 120 ГБ Intel X25-M SSD для L2ARC. Я побежал zpool add poolname cache cXtXdX затем сгенерировал нагрузку и охотно отслеживал процесс прогрева, запустив zpool iostat -v mypool, Несколько часов спустя L2ARC заполнен, но что именно было кэшировано?

Могу ли я заглянуть и посмотреть, что находится в моем ARC/L2ARC? Я понимаю, что определенные блоки будут отображаться в нескольких файловых системах (из-за снимков, клонирования или дедупликации), но я все же хотел бы получить статистику, подобную этой:

  • Тип кешируемого блока: метаданные. iSCSI, данные. и т.п.
  • Возраст: как долго каждый блок был в L2ARC
  • Какие файлы: каталоги, в которых содержится некоторое их содержимое
  • Сбой файловой системы: ГБ кэшируется на файловую систему
  • Расположение энергонезависимых копий блоков (которые приводят /vdev)

Я думаю, что zdb и / или dtrace будут инструментами de jour, но я не знаю, с чего начать.

2 ответа

Решение

Вот скрипт, который был обновлен для отражения данных в L2ARC.

Смотрите: http://blog.harschsystems.com/2010/09/08/arcstat-pl-updated-for-l2arc-statistics/

Источник доступен здесь: https://github.com/mharsch/arcstat

Возможно, я бы поспорил, что вам следует заботиться не о том, что находится в кеше, а о том, были ли кешированы наиболее эффективные вещи. Т.е. кэш ARC используется максимально эффективно?

Я запускаю небольшую (9 ТБ) реализацию ZFS на работе и считаю инструмент Бена Роквуда arc_summary.pl и Sun arcstat.pl, оба подробно описанные в этом посте cuddletech, очень полезными.

Я знаю, что он не дает прямого ответа на ваш вопрос о том, что именно находится в кеше ARC, но они должны дать вам точные данные о том, как используется ваш кеш, и требуется ли вам больше памяти / места на SSD.

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