Наша задача состоит в том, чтобы определить количество процессоров, необходимое для достижения некоторого конкретного значения производительности. Условия задачи можно записать в рабочую книгу Excel M/M/m, как показано в табл. 9.6. Значения из столбца «Значение» следует внести в желтые ячейки листа «Multiserver Model» книги MMm.xls.
Таблица 9.6. Входные параметры модели массового обслуживания
Имя
|
Значение (valuea)
|
Описание
|
jobunit
|
stmt
|
Исследуемая единица работы определена в условии задачи как «важная команда SQL».
|
timeunit
|
sec
|
Допустимое время отклика и время обслуживания процессором команды SQL измеряются в секундах.
|
queueunit
|
system
|
В условии задачи говорится, что мы ищем количество процессоров, которое должно быть установлено в одной системе.
|
serverunit
|
CPU
|
Единицей обслуживания в нашей задаче является процессор.
|
X
|
=100*4/60
|
«Предполагается, что каждый из 100 пользователей будет выполнять эту команду с частотой четыре раза в минуту в период пиковой загрузки системы.»
|
r
' max
|
1
|
Нашей целью является достижение значения времени отклика, меньшего чем 1 секунда («...обеспечить время отклика не более одной секунды ...»).
|
q
|
1
|
По условию задачи мы оцениваем работу одной системы.
|
m
|
1
|
Количество процессоров в системе - это то значение, которое мы ищем. В эту ячейку можно внести значение 1, т. к. мы скоро найдем подходящее значение.
|
=1/0.49
|
«На выполнение важной команды SQL расходуется 0,49 секунды процессорного времени». Поэтому скорость обслуживания равна 1/0,49 команд в секунду.
|
Введя эти значения в книгу Excel, мы увидим, что конфигурация с одним процессором (m = 1) не может обработать исследуемую нагрузку (рис. 9.21).
Модель показывает, что если снабдить систему всего одним процессором, то при поступлении в систему 6,67 команды в секунду процессору придется работать с коэффициентом загруженности 326,7%. Естественно, процессор не может быть загружен более чем на 100%. В реальности в такой системе коэффициент загруженности всегда будет равен 100%. Команды будут поступать быстрее, чем их можно будет обрабатывать, в связи с чем очередь будет постоянно и бесконечно расти. Но даже такой результат дает нам подсказку: для того чтобы у системы был хоть какой-то шанс справиться с заданной нагрузкой, в ней должно быть как минимум четыре процессора.
Электронная книга MMm для удобства содержит два столбца (valuea и valueb), позволяющие построчно сравнивать характеристики двух систем. Результат применения модели для m = 4 показан на рис. 9.22.
Идеальная четырехпроцессорная система обеспечивает среднее время отклика 0,908787 секунд на команду. Однако радоваться еще рано, ведь в данной конфигурации время отклика меньше одной секунды всего в 64,922% случаев ее выполнения. А нам нужно, чтобы время отклика системы составляло менее одной секунды в 95% случаев выполнения при пиковой загрузке.
Рассмотрим наилучшую теоретически достижимую производительность, которая достигается установкой максимально допустимого для компьютера количества процессоров - 16 (рис. 9.23). Как видите, у нас очень серьезные проблемы. Даже если количество процессоров m = 16, невозможно удовлетворить ожидания пользователей в отношении времени отклика, составляющего менее одной секунды более чем в 87%выполнений команды. Можете протестировать модель самостоятельно: даже если бы мы могли довести конфигурацию до m = 1000, такая система все равно не смогла бы обеспечить запрошенную производительность в более чем в 87% случаев выполнения команды.
Имейте в виду, что модель M/M/m позволяет строить гипотезы относительно систем, существование которых в реальности невозможно. Например, можно смоделировать идеально масштабируемую систему Linux с 1000 процессоров или даже идеально масштабируемую систему MS Windows NT с 4 процессорами. Вне зависимости от того, насколько абсурдными будут указанные входные значения, модель массового обслуживания честно расскажет о том, как будет работать идеально масштабируемая гипотетическая система в данной конфигурации. На самом деле модель даже не знает, что именно моделируется: компьютерные системы, бакалейные магазины или же билетные кассы. Аналитик решает, возможно ли реальное создание гипотетической системы. Модель M/M/m теории массового обслуживания (применяемая так, как здесь описано) является оптимистической в том смысле, что не учитывает никакие налагаемые реальной жизнью ограничения на масштабируемость, за исключением эффекта организации очередей.
Важно четко осознавать вышесказанное. Если данная модель теории массового обслуживания говорит о том, что нечто может быть сделано, вполне вероятно, что вам, тем не менее, не удастся это сделать. В конце концов ничто не мешает сказать модели, что можно втиснуть в компьютер под Linux 1000 процессоров, и все они будут без проблем работать на полную мощность. Однако если модель теории массового обслуживания уведомляет вас о том, что что-то сделать невозможно, этому совету можно полностью доверять. Если оптимистичная модель утверждает, что что-то реализовать невозможно, значит, это так и есть.
Модель M/M/m, реализованная в моей электронной книге Excel, оптимистична, т.к. не учитывает никаких препятствий
для наращивания системы, возможных в реальной жизни, за исключением эффекта очередей. Следовательно, сообщение модели о том, что какое-то явление возможно, не означает, что вам обязательно удастся его реализовать. Однако утверждения системы о том, что нечто невозможно, является достаточным аргументом невозможности данного явления (при условии, что исходные данные верны).
Наша модель сообщила нам, что вне зависимости от того, какое количество процессоров мы добавим в свою гипотетическую конфигурацию, нам никогда не удастся добиться того, чтобы 95% выполнений завершались менее, чем через одну секунду. Конечно, это не очень хорошие новости для нашего проекта, но, согласитесь, гораздо лучше узнать горькую правду при помощи недорогой модели массового обслуживания, чем бесцельно вложить в проект огромные средства и стать свидетелем его краха.
< Предыдущая | Следующая > |
---|