DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Как справиться с проблемой задержек


В примере 10.6 большое время отклика пользовательской операции вызвано чрезмерными задержками в отдельных вызовах ввода/выво­да. К моменту получения этого профиля ресурсов аналитик уже исклю­чил избыточные вызовы дискового чтения, оставив всего восемнадцать действительно необходимых. Однако средняя задержка чтения, со­ставляющая 2,023 секунды на вызов, далека от предельного значения 0,010 секунды, приведенного в табл. 10.2. По одному профилю ресур­сов невозможно установить, длится ли каждый из 18 вызовов чтения 2,023 секунды или же какой-то один из них был намного продолжи­тельнее остальных. (Помните, по агрегированным значениям нельзя восстановить составляющие. даже в профилях ресурсов.)
Не вызывает сомнений только одно: в этой пользовательской операции по крайней мере один вызов дискового чтения выполняется аномально долго. Следующая последовательность шагов поможет нам добраться до истоков проблемы:
Какой блок или блоки участвуют в медленных операциях ввода/ вывода? Ответ содержится в файле расширенной трассировки SQL. В главах 5 и 6 рассказано, как найти нужную информацию.
Выяснив, на каких блоках замедляется операция чтения, можно обратиться к администратору дисковой подсистемы за помощью в определении устройств, на которых они находятся.
Определив, на каких именно устройствах возникает проблема, узнайте, не слишком ли расточительно обращаются с ними програм­мы, конкурирующие с диагностируемой операцией. Если это так, то исключение бесполезной нагрузки уменьшит задержки в очереди к перегруженному устройству.
Проверьте, не создает ли излишнюю нагрузку конфигурация само­го устройства. Вот примеры:

Мне встречались системы с двумя и более зеркалами, сконфигу­рированными так, что узкое место возникало при чтении и запи­си через единственный контроллер.
Системы RAID уровня 5 обычно имеют недостаточную произво­дительность ввода/вывода. Применение массива RAID5 не обя­зательно является ошибкой. Однако не все отдают себе отчет в том, что для достижения соответствующей производительно­сти ввода/вывода массив RAID уровня 5, как правило, требует в два или в четыре раза больше дисков, чем может показаться на первый взгляд [Millsap (2000a)].
Иногда удается переместить нагрузку с перегруженного устрой­ства на более свободное на проблемном интервале времени. Сис­темные администраторы называют такую операцию балансиров­кой ввода/вывода. В начале 1990-х годов я встречал много систем Oracle, в которых проблема задержек ввода/вывода была вызва­на крайне неудачным размещением файлов (когда, например, все файлы базы данных Oracle находились на одном диске). Ду­маю, теперь такие ошибки встречаются реже. Однако если уж такая безумная конфигурация встретится на вашем пути, то она наверняка будет сопровождаться непомерными задержками вво­да/вывода, независимо от того, генерирует приложение избы­точные вызовы или нет.
• Разумеется, причиной низкой производительности могут быть и сбои оборудования. Неисправность дискового контроллера, вы­зывающая перезапросы и тайм-ауты, может намного ухудшить время отклика. Если устройства ввода/вывода работают ано­мально медленно, проверьте в системном журнале, не тратит ли операционная система время на безуспешные попытки заставить оборудование работать.
При достаточном опыте и творческом подходе шаги 3 и 4 могут дать превосходный результат.

 









jAntivirus