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

Проблемы с производительностью FreeBSD ZFS RAID-Z2

Я пытаюсь создать собственное сетевое хранилище на основе стандартных компонентов FreeBSD + ZFS +, но возникают странные проблемы с производительностью.

Технические характеристики оборудования:

Я создал zpool RAID-Z2 со всех дисков. Я установил FreeBSD 8.1 на этот zpool после руководство. Контроллеры SATA работают в режиме AHCI.

Вывод статуса zpool:

pool: zroot
state: ONLINE
scrub: none requested
config:
    NAME                                            STATE     READ WRITE CKSUM
    zroot                                           ONLINE       0     0     0
      raidz2                                        ONLINE       0     0     0
        gptid/7ef815fc-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/80344432-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/81741ad9-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/824af5cb-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/82f98a65-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0

Проблема в том, что производительность записи в пул очень-очень плохо (<10 МБ / с), и каждое приложение, обращающееся к диску, не отвечает каждые несколько секунд при записи. Кажется, что с записью все в порядке, пока кеш ZFS ark не заполнится, а затем ZFS останавливает весь системный ввод-вывод, пока не закончит запись этих данных.

Также я получаю kmem_malloc to small паника ядра. Я уже пробовал поставить

vm.kmem_size="1500M"
vm.kmem_size_max="1500M"

в /boot/loader.conf, но это не помогает.

Кто-нибудь знает, что здесь происходит? Неужели у меня действительно недостаточно памяти для ZFS для обработки этого RAID-Z2?

Я подозреваю, что вы, вероятно, столкнулись с проблемой, которую я назову проблемой «512-байтовые сектора не являются секторами по 4 КБ». В любом случае, гугл на gnop, сектор 4K, WD Green и я подозреваю, что вы найдете исправление. Я впервые узнал об этом этот сайт, и он был очень информативен об этой проблеме, а также о множестве других настроек для FreeBSD и ZFS. Удачи!

Изменить: цитировать со связанного сайта:

... Наконец, я наткнулся на упоминания о проблемах с экологичными дисками Western Digital на 1,5 ТБ (WE15EADS), которые я использую.

Диски имеют физический сектор 4 КБ, но сообщают в BIOS 512 байт. Таким образом, производительность падает при действительно больших операциях записи, потому что zfs во FreeBSD отправляет 4 КБ данных на диск в виде 8 отдельных операций записи по 512 байт, что требует, чтобы встроенное ПО на диске увеличивало его рабочую нагрузку примерно в 60 раз (первые 512 байт - запись 4 КБ, 2-е 512 байт, чтение 4 КБ, запись 4 К, ..., 8-е 512 байт, чтение 4 КБ, запись 4 КБ - так что 4 КБ записи становятся 4 КБ записи + (4 КБ чтения + 4 КБ записи) X (4 КБ / 512 Байт - 1 ) = 60. Диски со встроенным кэшем размером 32 МБ помогают до тех пор, пока он не заполнится и не сработает дуга zfs, а затем дуга начнет заполняться.

На самом деле это очень большая проблема, если вы записываете в zfs файлы, размер которых превышает размер вашей дуги плюс размер буфера на диске. ...

В дополнение к проблеме 4K / 512b, зеленые диски WD не являются идеальным выбором для вашего использования, поскольку они припарковывают голову после 8 секунд бездействия, и им требуется пара секунд, чтобы вернуться в рабочее состояние. Это задержка записи, которую вы наблюдаете.

http://opensolaris.org/jive/thread.jspa?messageID=480641&tstart=0

Попробуйте отключить таймер с помощью инструмента WDidle.