DeepEdit!

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

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

Интегральная функция распределения времени отклика


Если рассматривать максимальную рабочую пропускную способность в качестве меры производительности, то необходимо иметь в виду одну неувязку. Дело в том, что для пользователей не существует допустимо­го порога среднего времени отклика - на самом деле они думают о воз­можном допущении для худшего времени отклика. Слово «допусти­мый» скорее ассоциируется с некоторым предельным значением, чем с каким-то непонятным средним. Представим себе такой диалог:
Пользователь: Моя форма ввода заказа работает слишком медленно. Мы договаривались о том, что допустимое время отклика для обработки формы после ее заполнения должно быть полторы секунды, но на самом деле вре­мя отклика составляет менее 1,5 секунды лишь в 63,2% случаев.1

Я не случайно выбрал для этого примера число 63,2%. Это значение инте­гральной функции экспоненциального распределения в средней точке. То, что в диалоге названы именно эти цифры, означает, что пользователь на­блюдает за поведением системы, среднее время отклика которой составля­ет приблизительно 1,5 секунды.
Администратор системы: На самом деле все именно так, как мы и догова­ривались. Речь шла лишь о том, что среднее время отклика для формы вво­да заказа не должно превышать 1,5 секунд, а вы только что признали, что эта цель была достигнута.
Поставщик информации выполнил то, что было указано в соглашении об уровне обслуживания, но система не соответствует ожиданиям пользователя. На самом деле желание пользователя могло бы быть сформулировано, например, так:
Обработка формы после завершения ввода заказа должна завершаться не позднее чем в через 1,5 секунды, по меньшей мере, для 95 из каждых 100 исполнений.
Или, обобщая:
Функция должна завершать свою работу не позднее чем через секунд, по крайней мере, в процентах своих исполнений.
С функциональной точки зрения подобное утверждение составляет ос­нову соглашения между потребителем и поставщиком информации. Указывается, что для пользователей недопустимо возрастание време­ни отклика функции выше определенного значения. Отмечается и тот факт, что поставщик не может гарантировать, что абсолютно все поль­зователи останутся довольны производительностью данной функции, однако поставщик обещает свести неприятности к пренебрежимо ма­лому проценту выполнений.
Как вы, наверное, догадываетесь, теория массового обслуживания пре­доставляет нам математические средства для вычисления тех вели­чин, которые нам необходимы для создания подобных соглашений о качестве обслуживания. Одна из итоговых формул теории массового обслуживания предоставляет нам возможность определить минималь­ный уровень вложений в системные ресурсы, который необходим для удовлетворения требований к производительности системы в рамках экономических ограничений ее владельцев. Интегральная функция распределения (Cumulative Distribution Function - CDF) времени от­клика позволяет вычислить вероятность P(R < r) того, что при выпол­нении определенного запроса время отклика окажется не больше не­которого допустимого значения r. Возможно, это самая полезная ха­рактеристика, предоставляемая моделью массового обслуживания, т. к. она позволяет непосредственно измерить степень удовлетворенно­сти пользователя временем отклика.
Интегральная функция распределения времени отклика вычисляется по сложной формуле. Для частного случая - системы массового обслу­живания M/M/m (о которой речь пойдет ниже) - она выглядит следу­ющим образом [Gross and Harris (1998) 72-73]:
В примере 9.3 показан вариант решения этой задачи на старом добром Visual Basic.
Как я понял, что CDF-формула Джейна ошибочна
Формула Джейна для интегральной функции распределения времени отклика [Jain (1991), 528, 531] довольно долго не давала мне покоя. Она содержит такое выражение:
Я еще не понимал, о чем, собственно, в формуле идет речь, но наличие двух одинаковых членов (-eur) казалось мне странным. Почему автор или редактор не сгруппировал одинаковые члены и не записал их как -2e-lir? Оставалось предположить, что имела место какая-то типо­графская ошибка.
Я решил провести эксперимент. Выбрал произвольное целое значение для переменной m. В пакете Mathematica сгенерировал случайное вре­мя обслуживания s1 из экспоненциального распределения со случайно выбранным средним значением Затем получил случайное время между последовательными поступлениями запросов t1 из экспоненци­ального распределения со случайно выбранным средним значением 1/X. Применив известную нам формулу R = S + W, я вычислил ожидаемое время отклика системы, в которой время обслуживания и время между последовательными поступлениями запросов равнялись соответственно сгенерированным мною случайным числам. Имея на входе значения m, |_i = 1/s1 и X = 1/t1, вычислить было несложно.
Я повторил свой эксперимент несколько миллионов раз (для нескольких миллионов случайных значений времени обслуживания si, выбранных из экспоненциального распределения со средним значением 1/| , и не­скольких миллионов случайных значений интенсивности поступлений ti, выбранных из экспоненциального распределения со средним значе­нием 1/X). Сохранил результаты. Затем для случайно выбранного значе­ния времени отклика я просто сосчитал, какое количество значений времени отклика, полученных в ходе моих экспериментов, оказалось меньше r. Количество значений, не превышающих r, должно было при­близительно соответствовать значению интегральной функции распре­деления Джейна (именно так, по определению, она должна вести себя).
Но формула Джейна раз за разом выдавала результаты, не совпадающие с моим экспериментом. Зато формула Гросса и Хэрриса [Gross and Har­ris (1998) 72-73] всегда давала значения, совпадающие с моими резуль­татами. Я пытался связаться с доктором Джейном, чтобы представить ему результаты моих исследований, но на момент написания этой кни­ги ответа не получил.

Случайные величины
Одна из сложностей реальных систем массового обслуживания состоит в том, что невозможно точно предсказать время поступления запросов в систему (на самом деле, если бы запросы поступали в систему через равные интервалы времени и при этом не изменялось бы и время обслуживания, то при условии устойчивости системы никаких очередей бы не было). Например, мы можем считать, что запросы в телефонную систему поступают с частотой приблизительно 2,0 запроса в секунду, но неразумно ожидать поступления запросов с интенсивностью ровно один запрос каждые полсекунды. В большинстве реальных систем можно ожидать, что поступления запросов будут случайным образом распределены во времени. Мы предполагаем, что можно прогнозиро­вать «среднее поведение» для большого количества запросов, но пони­маем, что предсказать каждое отдельное время отклика невозможно.

 









jAntivirus