Дисковая очередь

Главная Форумы POWER Systems AIX/Hardware Дисковая очередь

Просмотр 20 веток ответов
  • Автор
    Сообщения
    • #13029
      Viacheslav Zabelin
      Участник

      Добрый день, коллеги.

      Есть проблема. Во время запуска/остановки инстанса БД диск на котором, находятся дата файлы, переходит в сотояние Busy – 100%, при этом никаких операций чтения/записи нет.
      Вот что показывет iostat в этот момент:

      iostat -lRD hdisk2 1

      [table]
      [tr][td]Disks: xfers write [/td][/tr]
      [tr][td]————– [/td][/tr]
      [tr][td] %tm bps tps bread bwrtn avg min max avg avg serv[/td][/tr]
      [tr][td] act time time time wqsz sqsz qfull[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [tr][td]hdisk2 100 0 0 0 0 0 0 0 0 26 0[/td][/tr]
      [/table]

      Значения в пропущеных колонках 0.

      Продложаться это может 30 сек, а может 10 минут.

      Запуск/остановку инстанса привел как нагляный пример (подобное происходит не только во время запуска/остановки БД) т.к. не знаю с чем связана проблема и как описать класс задач при которых это происходит.

    • #13030
      Дмитрий
      Участник

      1) Какая СУБД?
      2) Диск используется как raw device или с файловой системой?
      3) Как подключен диск (DAS/Virtual/FC/…)?

      Посмотрите
      lsattr -El hdisk2|grep queue

      Возможно, некорректно указана максимальная очередь запросов (1)?

    • #13031
      Viacheslav Zabelin
      Участник

      2 Dmitry:

      1. СУБД Oracle 9
      2. jfs2, смонтирована в режиме cio
      3. Диск замаплен с VIOS.

      На лпаре:

      $ lsattr -El hdisk2 | egrep “queue|max_transfer”
      max_transfer 0x200000 Maximum TRANSFER Size True
      queue_depth 200 Queue DEPTH True

      Тот же диск на виосе:

      # lsattr -El hdisk4 | egrep “queue|max_transfer”
      max_transfer 0x400000 Maximum TRANSFER Size True
      queue_depth 250 Queue DEPTH True

      Контроллеры на виосе(настроены идентично):

      # lsattr -El fcs0 | egrep “lg_term_dma|max_xfer_size|num_cmd_elems”
      lg_term_dma 0x800000 Long term DMA True
      max_xfer_size 0x400000 Maximum Transfer Size True
      num_cmd_elems 1024 Maximum number of COMMANDS to queue to the adapter True

      Некоторые параметры брал с боевого сервера. Дисковая очередь на боевом 200, max_transfer 0x100000 (дефолтное значение). Правда на боевом сервере нет виоса.

    • #13035
      Aleksandr
      Участник

      Еще если не сложно
      lspath -F”name:connection:parent:path_status:status”
      или
      lspath -l hdiskX -F”name:connection:parent:path_status:status”

      lsattr -El hdisk2 | grep algorithm

      Такое может быть следствием недоступности одного из путей при алгоритме round_robin.

    • #13037
      Дмитрий
      Участник

      А что за диск под этим лежит? 250 для очереди это хорошо, даже очень.
      CIO в AIX 6 уже, вроде, не рекомендуют использовать. Это может быть причиной “торможения” – данные не кэшируются, идёт большое количестов запросов к диску.

      Можно посмотреть командой filemon, что происходит.

    • #13039
      yota
      Участник

      Дык смысл cio и состоит в том, чтобы не кешировать файлы с данными СУБД, поскольку их будет кешировать сама СУБД. CIO при монтировании действительно не рекомендуют ибо зачем, когда есть setall в Oracle.

    • #13040
      Viacheslav Zabelin
      Участник

      2 bagger:

      Это на лпаре.

      slavon@erpdb-new:~$ lspath -F”name:connection:parent:path_status:status”
      hdisk0:810000000000:vscsi0:Available:Enabled
      hdisk1:810000000000:vscsi1:Available:Enabled
      hdisk2:810000000000:vscsi3:Available:Enabled
      hdisk3:820000000000:vscsi3:Missing:N/A
      hdisk4:830000000000:vscsi3:Missing:N/A
      hdisk5:840000000000:vscsi3:Missing:N/A
      hdisk3:810000000000:vscsi4:Available:Enabled
      hdisk4:820000000000:vscsi4:Available:Enabled
      hdisk5:830000000000:vscsi4:Available:Enabled

      slavon@erpdb-new:~$ lspath -l hdisk2 -F”name:connection:parent:path_status:status”
      hdisk2:810000000000:vscsi3:Available:Enabled

      slavon@erpdb-new:~$ lsattr -El hdisk2 | grep algorithm
      algorithm fail_over Algorithm True

      А это на виосе (мультипассинг на виосе работает).
      Тут этот диск – hdisk4

      # lspath -F”name:connection:parent:path_status:status” | grep fscsi | grep hdisk4
      hdisk4:200800a0b826cd1d,3000000000000:fscsi0:Available:Enabled
      hdisk4:200900a0b826cd1d,3000000000000:fscsi2:Available:Enabled

      # lsattr -El hdisk4 | grep algorithm
      algorithm fail_over Algorithm True

      Dmitry:

      Под этим лежит диск с DS4700, raid 10 из 42 дисков. Может быть 250 это и много, но в даном случае , на сколько я понимаю затыка в дисковой очереди (по причине ее не достаточной глубины) быть не должно.
      СУБД у нас Oracle 9i работает на AIX 5.3. Поэтому и параметры используются из рекомендаций по оптимизации AIX 5.3.
      Настройки среды я взял с продуктивного сервера, на котором ничего подобного мы не замечали.

      Отдельно хочу задать вопрос про параметр диска max_transfer.
      Должен ли этот параметр быть на лпаре таким же как на виосе на том же диске?

    • #13045
      Aleksandr
      Участник

      Думаю у вас дело именно в очереди, уменьшите ее. Обоснование
      The VSCSI adapter has a queue also
      To avoid queuing on the VSCSI adapter:
      Max LUNs/VSCSI adapter =INT(510/(Q+3))
      Q is the queue depth of the LUN assuming all are the same
      (Документ Disk IO Tuning in AIX 6.1)
      ТО есть в вашем случае максимум 2 луна на адаптер.

    • #13059
      Viacheslav Zabelin
      Участник

      Изначально на адаптере висело четыре диска. Потом три перенес на другой адаптер. Сейчас на адаптере один диск.

    • #13064
      Aleksandr
      Участник

      А ошибок нет на виосе? То что вы показыываете iostat у меня было, когда путь был слишком загружен. Как только я отключал этот путь, то сразу происходило оживление. Можно посмотреть ошибки на виос, запустить iostat -m hdisk4 и посмотреть как работает МР, в момент ступора отключить счначало один путь и посмотреть, не изменится ли картина, потом включить его заново и отключить другой. Можно еще посмотреть на состояние массива.

    • #13071
      Viacheslav Zabelin
      Участник

      На виосе были ошибки во время тестирования мультипассинга. После этого все чисто.
      Нагрузки на пути нет.

      # iostat -m hdisk4

      System configuration: lcpu=4 drives=10 ent=1.00 paths=14 vdisks=21

      tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc
      0.0 398.3 0.0 0.2 99.8 0.0 0.0 0.3

      Disks: % tm_act Kbps tps Kb_read Kb_wrtn
      hdisk4 2.1 939.7 108.9 210764016 282119820

      Paths: % tm_act Kbps tps Kb_read Kb_wrtn
      Path0 0.0 0.0 0.0 0 0
      Path1 2.1 939.7 108.9 210764016 282119820

      Не просто этот момент ступора отловить, так бы попробовал. Когда будет возможность положить СУБД попробую.

      А что на массиве посмотреть?

    • #13074
      Aleksandr
      Участник

      На массиве надо смотреть загрузку процессора и портов, которые отдают. Количество лунов через порт. Работает по одному пути, так как в настройках MP стоит file_over. Проблема вылилась в комплексную. Надо смотреть всю связку. Плюс еще и версию vio на предмет патчей 🙂

    • #13085
      Viacheslav Zabelin
      Участник

      Ошибка возникает только с одним драйвом. С другими такой проблемы нет.
      Разве в DS4700 есть возможность посмотреть загрузку процессора и портов? Все, что она показывает количество иопсов, сколько Мб в секунду читается/записывается и попадание в кэш.

    • #13086
      Aleksandr
      Участник

      По DS4700 сказать ничего не могу, так как нет опыта.

    • #13138
      Viacheslav Zabelin
      Участник

      Ситуация изменилась с изменением размера страйпа на луне (с 512k до 128k).
      Но вопросы все равно остались.

      Есть продуктивная система (p570) на которой лпарам отданы физические адаптеры и работает rdac.

      Жирным шрифтом выделены измененные параметры
      prod_param

      prod_param2

      И на этой системе iostat диск с данными СУБД показывает:

      prod_iostat_h4_1

      prod_iostat_h4_2

      Раздел смонтирован с опцией cio.

      И есть система (p750) которая готовится спать продуктивной. Диски замаплены через VIOS. Мультипассинг на VIOS – mpio.

      После отключения опции cio и увеличения параметра j2_maxUsableMaxTransfer до 2048 стало так:

      prod-new_iostat_h2_1

      prod-new_iostat_h2_2

      До изменения j2_maxUsableMaxTransfer и с опцией cio было:

      prod-new_iostat_h2_v1_1

      prod-new_iostat_h2_v1_2

      Параметры диска и контроллера на VIOS:

      vio_param

      Тотже диск на лпаре:

      prod-new_param

      И параметры ioo на лпаре.

      prod-new_param2

      Посмотрев на вывод iostat на продуктивной системе и на подготавливающейся можно увидеть что на продуктивной системе transfer size варьируется (из последней строчки первого iostat):
      bread/rps=51100k/4042=12.64k
      bwrtn/wps=19900k/292=68.15k

      …а на готовящейся этого не происходит:

      bwrtn/wps=26000k/3173=8.19k

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

      С чем это связано? Как уменьшить очередь?

    • #13139
      Aleksandr
      Участник

      У меня есть один вопрос. НА боевой системе у вас oracle крутится? А на новой вы чем тестируете? Просто на сколько мне известно при установке параметра cio на монтируемую файловую систему очень сильно снижает скорость дисковых операций, если их выполняеи не СУБД Oracle. Кэширование там отключено.

    • #13140
      Viacheslav Zabelin
      Участник

      Тот же оракл. Клон продуктивной базы.

    • #13148
      uxTuaHgp
      Участник

      А перфоманс PMR создать в поддержке?
      И зачем выключили cio?

      И кто рекомендовал параметры ioo менять?

    • #13149
      uxTuaHgp
      Участник

      У меня есть идиотское предположение еще: Oracle использует AIO и AIO порождает определенное количество aioserv помоему процессов на процессор, который виден системе.
      В связи с этим и возникает подозрение на офигенную конкуренцию AIO серверов, которых в системе по количеству тредов Power7
      SMT включен?
      Выключать пробовали?
      Что показывает во время аномальной загруженности командочка:
      ps -k |grep aio |wc -l

    • #13166
      Viacheslav Zabelin
      Участник

      А перфоманс PMR создать в поддержке?
      И зачем выключили cio?

      И кто рекомендовал параметры ioo менять?

      1. Первый вопрос довольно объемный. Кратко: Сказывается хроническое состояние в отрасли.

      2. С cio при bps > 30Mb/s serv qfull 0 (3500 и выше), без cio serv qfull = 0.

      3. Нужно было как-то решать проблему (+п.1).

      У меня есть идиотское предположение еще: Oracle использует AIO и AIO порождает определенное количество aioserv помоему процессов на процессор, который виден системе.
      В связи с этим и возникает подозрение на офигенную конкуренцию AIO серверов, которых в системе по количеству тредов Power7
      SMT включен?
      Выключать пробовали?
      Что показывает во время аномальной загруженности командочка:
      ps -k |grep aio |wc -l

      На сколько офигенной должна быть конкуренция?

      $ aioo -a
      minservers = 5
      maxservers = 15
      maxreqs = 12288
      fsfastpath = 0

      При 16 процессорах это дает max 240 aioserver.

      SMT включен.
      Не связывал io с smt, поэтому не выключал.
      ps -k |grep aio |wc -l во время аномальной загрузки не запускал. Вернуться к тем настройкам при которых происходит аномальная ситуация с очередью сейчас довольно сложно.

    • #13168
      uxTuaHgp
      Участник

      Значения aio, кстати не в умолчаниях.
      Рекомендации оракла?
      Есть у меня ощущение, что большое кол-во ядер и тредов Power7 пагубно влияет.
      У нас SMT просто выключен.

Просмотр 20 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.