Безусловно, два процессора лучше, чем один. Но почему? И при каких условиях? Попробуем найти ответ при помощи диаграммы последовательности (рис. 9.12). В случае a первый вызов дискового ввода/вывода не может сразу же вернуться на единственный процессор системы, т. к. процессор занят выполнением другой работы. Поэтому образуется очередь к процессору, что, естественно, увеличивает время отклика. В случае b система имеет два процессора. Когда вызов дискового ввода/вывода заканчивается, то оказывается, что процессор1 занят, но процессор2 готов к работе и может обслужить запрос, что приводит к исчезновению задержки в очереди и улучшает время отклика для бизнес-функции. Обратите внимание на интересный эффект возникновения нового «узкого места» на диске в случае b.
Уменьшение задержки в очереди в системах с большим значением m четко проявляется в модели M/M/m. Влияние количества параллельных каналов обслуживания на производительность изображено на рис. 9.13. Несмотря на то, что время обслуживания (S) остается неизменным во всех системах, представленных на рисунке, время отклика (R) при большой интенсивности поступления запросов (X) оказывается меньше в системах с большим количеством каналов обслуживания (m) за счет уменьшения задержки в очереди (W = R - S).
Так что же лучше - система с одним очень быстрым процессором или система с m > 1 более медленными процессорами? У большинства консультантов правильный ответ запрограммирован в их ДНК: «Это зависит». Основываясь на модели M/M/m, мы можем ответить на замечательный вопрос: «От чего зависит?».
Рис. 9.14 ясно показывает, что все «зависит» только от одной переменной - интенсивности поступления запросов. При низкой интенсивности система с m = 1 быстрым процессором обеспечит наилучшую производительность. При высокой интенсивности поступления запросов система с m > 1 будет работать быстрее. Можно вычислить критическую точку Xeq, изобразив кривые времени отклика при помощи инст-
Рис. 9.14. Компьютер с одним быстрым процессором обеспечивает лучшее время отклика при низкой интенсивности поступления запросов, а компьютер с четырьмя более медленными процессорами - при высокой интенсивности поступления запросов
румента, подобного предлагаемому нами на http://www.hotsos.com. Те, кого интересует более точная информация, могут найти значение X, при котором времена отклика двух систем совпадают, применяя метод деления интервала пополам (этот метод был использован в функции LambdaMax из примера 9.2). Или же можно вычислить Xeq условно при помощи пакета Mathematica.
Люди, работавшие с системами обоих типов, так рассказывают о том, в чем проявляются на практике особенности, отраженные на рис. 9.14:
Длительные ночные пакетные задания быстрее выполняются в системах с одним быстрым процессором. Такой результат часто удивляет пользователей, которые «усовершенствуют» систему за счет перехода от одного процессора к нескольким. Но когда однопоточ-ное задание в одиночку выполняется в системе, интенсивность поступления запросов невысока. Задание будет быстрее выполняться на быстром процессоре. Многопроцессорная конфигурация не обеспечивает снижения задержки в очереди для системы с низкой интенсивностью поступления запросов, потому что в таких системах вообще нет очередей.
Многопроцессорная система обеспечивает лучшее время отклика пользователям, работающим в оперативном режиме в часы наибольшей загрузки. Такой результат объясняется снижением задержки в очереди, которое обеспечивается многоканальностью системы. Многопроцессорные системы лучше приспосабливаются к высокой интенсивности поступления запросов (вызванной, например, большим количеством одновременно работающих пользователей), чем однопроцессорные системы.
Естественно, при покупке системы выбор определяется множеством как технических, так и нетехнических факторов, среди которых стоимость, надежность оборудования, дилерское обслуживание, гибкость обновлений и совместимость с другими системами. Но при этом обязательно должна учитываться и ожидаемая загрузка системы в часы пиковой нагрузки.
Наиболее интересной частью кривой производительности является ее «излом». Интуитивно можно сказать, что «излом кривой» - это то значение коэффициента использования, начиная с которого кривая начинает расти вверх быстрее, чем уходить вправо (вертикальная координата растет быстрее горизонтальной). К сожалению, такое определение нам не подходит, т. к. местоположение такой точки меняется в зависимости от того, как вычерчивается кривая. Обратимся к рис. 9.15. Приведенные схемы представляют собой два разных графика одной и той же кривой времени отклика. Графики отличаются только масштабом по вертикальной оси. Разница кажется непомерной: очевидно, что «эти две системы имеют различные изломы». Но вспомните, что речьна самом деле идет не о двух системах, а о двух графиках одной и той же системы, изображенных в разных масштабах по вертикальной оси.
Итак, визуальное определение местоположения «излома» - это слишком ненадежный метод. Понятно, что настоящее определение «излома» системы не может зависеть от выбора единицы измерения осей при построении графика кривой времени отклика.
Один автор совершенно неправильно излагает свои взгляды по этому вопросу в статье «Performance Management: Myths & Facts» [Millsap (1999) 8] («Управление производительностью. Мифы и реальность», Oracle Magazine RE, август 2001). Факты, которые он приводит, достоверны: кривая времени отклика действительно имеет излом, и точка излома действительно сдвигается вправо при увеличении количества каналов обслуживания.
Однако то определение, которое автор приводит для излома (значение, в котором вертикальная координата кривой начинает расти быстрее, чем горизонтальная), к сожалению, основывается лишь на зрительном восприятии, которое только что было развенчано. Тот способ, которым он предлагает находить точку излома (вычисление такого значения р, для которого dR/др = 1 и т. д.), абсолютно ошибочен. Я уверен, что автор очень сожалел бы о своей ошибке, если бы знал о ней.
Более подходящее техническое определение «излома» выглядит следующим образом: излом кривой времени отклика имеет место при таком значении коэффициента использования р*, при котором отношение R/р достигает своего минимума. Графически это означает, что излом приходится на такое значение коэффициента использования (р), при котором прямая, проведенная через начало координат, пересекает кривую времени отклика ровно в одной точке (т. е. касается ее), как это показано на рис. 9.16. Многие аналитики считают значение р* оптимальным коэффициентом использования для системы M/M/m, т. к....
...обычно требуется одновременно минимизировать R (для удовлетворения пользователей) и максимизировать р (для того чтобы разделить стоимость ресурсов между многими пользователями) [Vernon(2001)].
Как вы видели, при значениях коэффициента использования, расположенных слева от излома (р<р*), попусту растрачивается пропуск-
Рис. 9.16. Излом - это значение коэффициента использования р*, при котором отношение R/' р принимает наименьшее значение. Или, что эквивалентно, излом - это значение р, при котором прямая, проведенная через начало координат, является касательной к кривой времени отклика
Рис. 9.17. Значение излома перемещается вправо по оси коэффициента использования (р) по мере увеличения количества параллельных каналов обслуживания (m)
ная способность системы. Ведь при низких значениях коэффициента использования можно увеличить нагрузку без существенного ухудшения времени отклика. Для значений, расположенных справа от излома (р> р*), значительное ухудшение времени отклика для пользователей может возникнуть даже при малейшем изменении нагрузки.
Положение точки излома для системы M/M/m зависит исключительно от значения m- количества параллельных каналов обслуживания. Мы уже знаем, что добавление параллельных каналов обслуживания позволяет системе работать с более высоким коэффициентом использования без существенного ухудшения времени отклика. На рис. 9.17 показано, как точка излома сдвигается вправо при увеличении значения m.
Положение излома для фиксированного значения m постоянно и не зависит от скорости обслуживания, что видно на рис. 9.18. На этом рисунке изменение скорости обслуживания (m) приводит к изменению времени отклика (обратите внимание на разные отметки на оси R), но вид кривой производительности и положение точки излома совпадают для всех систем M/M/1. Так же и все кривые M/M/2 имеют одну и ту же форму и одно и то же значение излома. Все кривые M/M/3 имеют одну форму и одну точку излома. И так далее.
Говорят, что две кривые /1 и /2 имеют одинаковую форму, если f1(x) = k f2(x) для каждого значения x и некоторой постоянной k. То есть две кривые имеют одинаковую форму, если их можно сделать идентичными за счет увеличения для одной из них масштаба по вертикальной оси в некоторое постоянное количество раз.
Все системы M/M/m с фиксированным значением m имеют один и тот же коэффициент использования в точке излома, поэтому данные о положении излома для интересных значений m можно свести в одну таблицу (табл. 9.3).
Таблица 9.3. Значение коэффициента использования р*, при котором в системе M/M/m имеет место излом, зависит от значения m
m
|
Р*
|
m
|
р*
|
1
|
0,5
|
32
|
0,86169
|
2
|
0,57735
|
40
|
0,875284
|
3
|
0,628831
|
48
|
0,885473
|
4
|
0,665006
|
56
|
0,893482
|
5
|
0,692095
|
64
|
0,899995
|
6
|
0,713351
|
80
|
0,910052
|
7
|
0,730612
|
96
|
0,917553
|
8
|
0,744997
|
112
|
0,923427
|
16
|
0,810695
|
128
|
0,928191
|
24
|
0,842207
|
Данные табл. 9.4 позволяют чуть глубже познакомиться с производительностью систем M/M/m. В ней показано, как ухудшается среднее время отклика с увеличением коэффициента использования в различных системах M/M/m. Например, если в незагруженной системе M/M/1 среднее время отклика R = S секунд, то при коэффициенте использования 50% среднее время отклика ухудшится до R = 2S секунд (т.е. в два раза по сравнению с незагруженной системой). Когда значение коэффициента достигнет 75%, время отклика возрастет в четыре раза по отношению к незагруженной системе. Если же коэффициент использования достигнет 90%, то время отклика возрастет в десять раз! В системе M/M/8 время отклика возрастет до R = 4S секунд, только когда коэффициент использования достигнет значения 96,3169%. Эти цифры подтверждают наши интуитивные предположения о влиянии дополнительных каналов обслуживания на масштабируемость времени отклика.
Таблица 9.4. Значения коэффициента использования для систем M/M/m, при которых время отклика в k раз превышает время обслуживания (т. е. при которых R = kS)
k
\
m
1
|
2
|
4
|
8
|
16
|
|
1
|
0,
|
0,
|
0,
|
0,
|
0,
|
2
|
0,5
|
0,707107
|
0,834855
|
0,909166
|
0,950986
|
3
|
0,666667
|
0,816497
|
0,901222
|
0,947673
|
0,97263
|
4
|
0,75
|
0,866025
|
0,929336
|
0,963169
|
0,980984
|
5
|
0,8
|
0,894427
|
0,944954
|
0,971569
|
0,985426
|
6
|
0,833333
|
0,912871
|
0,954907
|
0,976844
|
0,988184
|
7
|
0,857143
|
0,92582
|
0,961807
|
0,980467
|
0,990064
|
8
|
0,875
|
0,935414
|
0,966874
|
0,983109
|
0,991427
|
9
|
0,888889
|
0,942809
|
0,970753
|
0,985121
|
0,992462
|
10
|
0,9
|
0,948683
|
0,973818
|
0,986704
|
0,993273
|
< Предыдущая | Следующая > |
---|