Настраивая вычищение ZFS, 141KB/s работающий в течение 15 дней

Необходимо быть прекрасным выполнением их от той же папки, я сделал это прежде без проблем в IIS. Я не уверен, является ли это "плохая практика" или не, но это работает.

14
задан 16 February 2015 в 03:32
4 ответа

Операции очистки ZFS работают на некоторых довольно бессмысленных принципах. В частности, он тратит время на чистку, только когда ничего не происходит. Если вы протолкнете пул с небольшим доступом к данным на довольно постоянной основе, scrub будет фактически голодать и почти ничего не делать.

Настраиваемые параметры для изучения, с моими краткими заметками о том, что он делает (в последний раз я изучал это некоторое время назад):

  • zfs_scan_idle - если пользовательский ввод-вывод происходит в течение этого количества тактов часов, задержка ввода-вывода очистки с помощью zfs_scrub_delay clock ticks
  • zfs_scrub_delay - сколько тактов часов задержать операцию очистки, если запускается zfs_scan_idle
  • zfs_top_maxinflight - максимальное количество операций ввода-вывода очистки на vdev верхнего уровня
  • zfs_scrub_limit - максимальное количество операций ввода-вывода очистки на лист vdev
  • zfs_scan_min_time_ms - минимальное количество миллисекунд, затрачиваемых на каждый txg на очистку операции
  • zfs_no_scrub_io - без заметок
  • zfs_no_scrub_prefetch - без заметок, имя происходит очень случайное чтение (вращающиеся диски должны работать лучше, чем это, если оно действительно последовательное), и вы уже выполнили «легкие» вещи, как описано выше. Итак, сначала я бы включил zfs_no_scrub_prefetch, чтобы отключить предварительную выборку при операциях очистки, просто чтобы посмотреть, помогает ли это. Если нет радости, в зависимости от используемой вами версии Nexenta - возможно, вы используете 30/5, 5/1 или 10/5 (это сокращение, которое мы используем для настроек zfs_txg_timeout & (zfs_txg_synctime_ms * 1000)). Измените zfs_txg_timeout на 10 и zfs_txg_synctime_ms на 5000, затем попробуйте увеличить zfs_scan_min_time_ms до 3000 или 4000. Это говорит ZFS, что он может тратить намного больше времени на очистку по сравнению с настройками по умолчанию на старых установках NexentaStor, которые используют 5/1 по умолчанию, но осторожный, это может привести к нехватке нормального ввода-вывода, если настройки задержки также были установлены в основном на 0!

    Надеюсь, это поможет. Удачи!

11
ответ дан 2 December 2019 в 21:12

Я подозреваю, что оборудование ...

Почему вы позволили этому поработать 15 дней? Это ненормально. Остановите чистку - бак для чистки zpool и проверьте систему.

  • Какие контроллеры вы используете?
  • Это первая чистка, которую вы когда-либо использовали в этом бассейне?
  • Была ли проблема, которая изначально побудила вас запустить очистку?
3
ответ дан 2 December 2019 в 21:12

Scrub использует доступное время простоя системы даже на выгруженном сервере, это касается доступности. Оперативная память и процессор - это ключи к очистке утилизации, а не диск. Чем больше их доступно, тем лучше будет ваша чистка. Однако, безусловно, в этом случае, чем лучше будут выложены ваши диски с точки зрения ZPools, тем лучше будет производительность очистки.

Итак, если ваша работа была медленной, а это действительно так, я бы рассмотрел это как возможные причины.

-3
ответ дан 2 December 2019 в 21:12

Мой ответ приходит немного поздно, но если что-то подобное случится с кем-нибудь еще, вот мое мнение: просто попробуйте "dmesg". В моем случае я не выполнял очистку, но я копировал файлы на диски, и я четко слышал, как диски были активными в течение нескольких секунд, затем все останавливались на более длительное время, снова работали и так далее. Это произошло из-за отказа одного контроллера SATA, и dmesg выдал мне все ошибки. Сначала я подумал, что это неисправный диск, но потом понял, что на самом деле это контроллер.

0
ответ дан 2 December 2019 в 21:12

Теги

Похожие вопросы