Почему мой пул ZFS тратит 97% своего времени на чтение цели и только около 3% записи на операцию записи?
Это сбивает с толку меня, и я не знаю способа углубиться в то, что на самом деле делает ZFS.
Я использую чистую установку FreeNAS 11.1 с быстрым пулом ZFS (импортированные зеркала на быстрых 7200) и отдельным SSD UFS для тестирования. Конфиг в значительной степени "из коробки".
SSD содержит 4 файла размером 16 -120 ГБ, скопированных с помощью консоли в пул. Пул дедуплицирован (стоит того: экономия в 4 раза, размер на диске 12 ТБ), а система имеет много оперативной памяти (128 ГБ ECC) и быстрый Xeon. Памяти вполне достаточно - zdb
показывает, что пул имеет в общей сложности 121M блоков (544 байта каждый на диске, 175 байтов каждый в ОЗУ), поэтому весь DDT составляет всего около 20,3 ГБ (около 1,7 ГБ на ТБ данных).
Но когда я копирую файлы в пул, я вижу это в zpool iostat
:
Это делает цикл из минут чтения низкого уровня и краткого всплеска записей. Прочитанная часть показана на рис. Общая скорость записи для задачи также невелика - пул пуст на 45% / 10 ТБ и изначально может записывать со скоростью 300–500 МБ / с.
Не зная, как проверить, я подозреваю, что низкоуровневые чтения - это чтение DDT и других метаданных, так как они не загружаются в ARC (или постоянно выталкиваются из ARC при записи данных файла). Может быть.
Возможно, он обнаружил попадания дедупликации, так что не так много написано, только я не помню ни одной дублированной версии этих файлов, и он делает то же самое из / dev / random, насколько я помню (я проверю это и скоро обновлю). Может быть. Нет настоящей идеи.
Что я могу сделать, чтобы разобраться в том, что происходит более точно, с целью его оптимизации?
Обновление ОЗУ и дедупликация:
Я обновил Q, чтобы показать размер ДДТ после первоначального комментария. ОЗУ дедупликации часто указывается как 5 ГБ на ТБ x 4, но это основано на примере, который действительно не очень подходит для дедупликации. Вы должны рассчитать количество блоков, умноженное на байты на запись. «Х 4» часто цитируются просто «мягкий» предел по умолчанию только (по умолчанию метаданных ZFS ограничивает до 25% АРК, если не сказано, чтобы использовать больше - эта система specced для DeDup и я добавил 64GB, который все использовать, чтобы ускорить кэширование метаданных).
Таким образом, в этом пуле zdb
подтверждается, что для всего ДДТ необходимо всего 1,7 ГБ на ТБ, а не 5 ГБ на ТБ (всего 20 ГБ), и я рад предоставить метаданные 70% ARC, а не 25% (80 ГБ из 123 ГБ).
При таком размере не нужно извлекать из ARC ничего, кроме «мертвого» содержимого файла. Поэтому я пытаюсь на самом деле проверить ZFS, чтобы выяснить, что происходит, и поэтому я могу видеть эффект от любых изменений, которые я делаю, потому что я действительно очень удивлен его огромным количеством «низкого уровня чтения», и ищу способ проверить и подтвердить реальность того, что он думает, что делает.
0 ответов на вопрос
Похожие вопросы
-
3
Как максимально использовать время автономной работы ноутбука на ПК с Windows?
-
6
Достаточно ли убедителен Windows Home Server по сравнению с бесплатными ОС NAS?
-
1
Что можно отключить на Windows XP, чтобы освободить память, не ломая все
-
-
2
Что можно отключить на ноутбуке Vista, чтобы освободить ресурсы
-
5
Почему фанат моего процессора гонит видео или виртуальные машины?
-
4
Firefox 3.5 медленно, чтобы начать выпуск
-
2
Как мне интерпретировать номера памяти в диспетчере задач Windows?
-
4
Какие факторы наиболее важны при рассмотрении аспектов производительности материнской платы?
-
6
Установка Windows 7 по умолчанию: что нужно изменить, чтобы сделать это быстрее?
-
4
Установка Windows Vista по умолчанию: Какие общие изменения для улучшения скорости?