DeepEdit!

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

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

Массовое обслуживание


Во всех компьютерных приложениях есть инициаторы запросов, чего-то требующие, и поставщики информации, обеспечивающие ответ на такие запросы. Весь анализ производительности Oracle посвящен от­ношениям между поставщиками и потребителями, в особенности в ус­ловиях острой конкуренции за совместно используемые ресурсы.
Массовое обслуживание - это то, что происходит, когда потребитель требует выделения ему некоторого ресурса, который в данный момент занят обслуживанием другого запроса. Это просто: вы ждете, когда на­ступит ваша очередь. Существует множество разнообразных дисциплин распределения ресурсов. Одной из наиболее распространенных является уравнительная дисциплина обслуживания в порядке поступления тре­бований, т. е. обслуживания по принципу «первым пришел - первым об­служен» (first-come, first-served). Находят также применение различ-
«Queueing» или «Queuing»
Теоретики массового обслуживания должны определиться, как писать по-английски то самое слово, которое обозначает «массовое обслужива­ние» - queueing. Сколько букв «e» должно быть в этом слове - две или одна. Утилита проверки орфографии моего текстового процессора (как и многие словари) оповестила меня о том, что слово «queueing» пишется как «queuing», с одним «e». Однако в сфере теории массового обслужи­вания (подробности можно найти по адресу http://www2.uwindsor.ca/ ~hlynka/qfaq.html) принято писать это слово как «queueing». К сча­стью, именно это написание рекомендуют два таких уважаемых слова­ря, как «Oxford English Dictionary» и «Oxford American Dictionary».

ные варианты дисциплины обслуживания с приоритетами, при этом на порядок обслуживания влияет, например, статус заявки. Вот некото­рые примеры: первоочередное обслуживание собственных сотрудни­ков, членов королевской семьи, наиболее пробивных личностей и, на­оборот, обслуживание последними самых кротких и благонравных.
«Дождавшись своей очереди», вы получаете запрошенную услугу, что, естественно, занимает некоторое время. Затем вы освобождаете место, и стоящий следом за вами человек получает услугу в соответствии со своим запросом. Люди выстраиваются в очереди к обеденным столи­кам, банковским клеркам, билетным кассам, эскалаторам, автостра­дам и «горячим линиям» поддержки программного обеспечения. Ком­пьютерные программы стоят в очередях к таким ресурсам, как процес­сор, память, дисковый и сетевой ввод/вывод, блокировки и защелки.
Экономика очередей
Конечно же, стояние в очереди сопровождается отчетливым ощущени­ем напрасно потраченного времени. Один из способов, которым по­ставщик услуг может ускорить продвижение очереди, заключается в увеличении количества или производительности ресурсов. Более быстрые ресурсы или большее их количество, или и то, и другое вме­сте сократят время пребывания в очереди. Но, разумеется, поставщи­ки услуг переложат на вас стоимость улучшения ресурсов, подняв це­ны на свои услуги. В конце концов, это вы решаете, где находится ра­зумный компромисс между скоростью и стоимостью обслуживания.
В жизни мы ежедневно занимаемся оптимизацией по критериям вре­мени отклика и экономичности. Например, многие из нас тратят тыся­чи долларов на покупку автомобилей. Несмотря на то, что покупка и обслуживание велосипеда обойдется гораздо дешевле, чем автомоби­ля, мы покупаем машины отчасти из-за того, что они намного быстрее и обеспечивают значительно лучшее время отклика в наших поездках. (Хотя мы, американцы, известны своей склонностью ездить на авто­мобилях даже там, где велосипед был бы не только дешевле, но и значительно быстрее.)
Купив автомобиль, мы обнаруживаем, что опять необходима оптимиза­ция. В обычных поездках машина, развивающая скорость 325 км/час, не дает преимуществ во времени по сравнению с автомобилем, способ­ным передвигаться не быстрее 100 км/час, т. к. правила дорожного движения и соображения безопасности накладывают более строгие ограничения, чем мощность двигателя. По этой же причине даже об­ладатели сверхбыстрых машин планируют свои поездки так, чтобы не попасть в час пик. В некоторых случаях мы применяем стратегию, ми­нимизирующую время обслуживания, в других - стремимся умень­шить задержку в очереди. Наибольшая выгода для вас и ваших поль­зователей имеет место, когда есть возможность уменьшить время об­служивания, или задержки в очереди, или и то и другое.
Наглядное представление очередей и массового обслуживания
Как говорилось в главе 1, диаграмма последовательности - это удоб­ная форма представления структуры расходования времени пользова­тельской операцией, путешествующей по различным уровням техноло­гического стека. На рис. 9.1 показана диаграмма последовательности для системы с одним процессором и одним диском. Выполнение поль­зовательского запроса приводит к расходованию ресурсов процессора и диска. Каждая линия на диаграмме обозначает наличие ресурса на данном отрезке времени. Каждый темный прямоугольник на оси вре­мени ресурса показывает факт потребления запросом данного ресурса. Длина этого прямоугольника пропорциональна длительности исполь­зования ресурса. Участки временной оси, на которых отсутствуют тем­ные прямоугольники, соответствуют периодам простоя. Диаграмма последовательности читается сверху вниз. Стрелка, направленная сле­ва направо, означает запрос на обслуживание, направленная справа налево - предоставленную услугу. Время отклика равно длительности промежутка между инициированием и завершением запроса.
На рис. 9.1 пользователь приложения выполняет запрос на обслужи­вание к процессору. Процессор в момент получения запроса свободен, поэтому немедленно начинает его обслуживание. По ходу работы сис­тема обнаруживает, что для продолжения обработки требуется обра­щение к диску. Процессор отправляет диску запрос на обслуживание. Тот в момент получения запроса ничем не занят, поэтому сразу начи­нает его обслуживание. Выполнив запрос на обслуживание, диск воз­вращает процессору требуемый результат, и процессор продолжает об­работку. После третьего обращения к процессору запрос пользователя выполнен, и процессор возвращает ему результат.
С точки зрения пользователя время отклика равно времени, прошед­шему с момента отправки запроса до получения результата. Обратите внимание на то, что на рис. 9.1 показаны также и другие времена от­клика. Например, длительность первого (т. е. самого верхнего) темно­го прямоугольника на оси Диск с точки зрения процессора представля­ет собой время отклика первого вызова дискового ввода/вывода.
Диаграмма последовательности особенно помогает понять, как конку­ренция за совместно используемые ресурсы влияет на многозадачную систему. В частности, на рис. 9.2 показано, почему увеличение нагруз­ки в системе из предыдущего примера может привести к снижению производительности. В ненагруженной системе запросы на использо­вание процессора исполняются без задержек (случай а).
Когда мы увеличиваем нагрузку на систему (случай б), некоторые за­просы к процессору вынуждены ждать, т. к. процессор в момент их по­лучения занят другой работой. На рис. 9.2 показаны две таких за­держки в очереди. Второй запрос к процессору после того, как диск вернул управление, вынужден ждать, т. к. процессор занят выполне­нием задания, обозначенного светло-серым прямоугольником. И тре­тий запрос к процессору ждет по той же причине. Увеличение общего времени отклика нагруженной системы (случай б) по сравнению с не-нагруженной системой (случай а) в точности соответствует общему времени, проведенному запросами в очереди к занятому ресурсу.
Какого увеличения времени отклика можно ожидать, увеличивая на­грузку на систему? Для ответа на этот и многие другие важные вопро­сы разработан специальный математический аппарат: теория массо­вого обслуживания.
 









jAntivirus