DeepEdit!

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

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

Масштабируемость многоканальной системы


Безусловно, два процессора лучше, чем один. Но почему? И при каких условиях? Попробуем найти ответ при помощи диаграммы последова­тельности (рис. 9.12). В случае первый вызов дискового ввода/выво­да не может сразу же вернуться на единственный процессор системы, т. к. процессор занят выполнением другой работы. Поэтому образует­ся очередь к процессору, что, естественно, увеличивает время откли­ка. В случае система имеет два процессора. Когда вызов дискового ввода/вывода заканчивается, то оказывается, что процессор1 занят, но процессор2 готов к работе и может обслужить запрос, что приводит к исчезновению задержки в очереди и улучшает время отклика для бизнес-функции. Обратите внимание на интересный эффект возникно­вения нового «узкого места» на диске в случае b.
Уменьшение задержки в очереди в системах с большим значением четко проявляется в модели M/M/m. Влияние количества параллель­ных каналов обслуживания на производительность изображено на рис. 9.13. Несмотря на то, что время обслуживания (S) остается неиз­менным во всех системах, представленных на рисунке, время отклика (R) при большой интенсивности поступления запросов (X) оказывается меньше в системах с большим количеством каналов обслуживания (m) за счет уменьшения задержки в очереди (W = R - S).
Так что же лучше - система с одним очень быстрым процессором или система с > 1 более медленными процессорами? У большинства кон­сультантов правильный ответ запрограммирован в их ДНК: «Это зави­сит». Основываясь на модели M/M/m, мы можем ответить на замеча­тельный вопрос: «От чего зависит?».
Рис. 9.14 ясно показывает, что все «зависит» только от одной перемен­ной - интенсивности поступления запросов. При низкой интенсивно­сти система с = 1 быстрым процессором обеспечит наилучшую про­изводительность. При высокой интенсивности поступления запросов система с > 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, т. к....
...обычно требуется одновременно минимизировать (для удовлетворения пользователей) и максимизировать р (для того чтобы разделить стоимость ресурсов между многими пользователями) [Vernon(2001)].
Как вы видели, при значениях коэффициента использования, распо­ложенных слева от излома (р<р*), попусту растрачивается пропуск-
Рис. 9.16. Излом - это значение коэффициента использования р*, при котором отношение R/' р принимает наименьшее значение. Или, что эквивалентно, излом - это значение р, при котором прямая, проведенная через начало координат, является касательной к кривой времени отклика
Рис. 9.17. Значение излома перемещается вправо по оси коэффициента использования (р) по мере увеличения количества параллельных каналов обслуживания (m)
ная способность системы. Ведь при низких значениях коэффициента использования можно увеличить нагрузку без существенного ухудше­ния времени отклика. Для значений, расположенных справа от изло­ма (р> р*), значительное ухудшение времени отклика для пользовате­лей может возникнуть даже при малейшем изменении нагрузки.
Положение точки излома для системы M/M/m зависит исключительно от значения m- количества параллельных каналов обслуживания. Мы уже знаем, что добавление параллельных каналов обслуживания по­зволяет системе работать с более высоким коэффициентом использова­ния без существенного ухудшения времени отклика. На рис. 9.17 пока­зано, как точка излома сдвигается вправо при увеличении значения m.
Положение излома для фиксированного значения постоянно и не за­висит от скорости обслуживания, что видно на рис. 9.18. На этом ри­сунке изменение скорости обслуживания (m) приводит к изменению времени отклика (обратите внимание на разные отметки на оси R), но вид кривой производительности и положение точки излома совпадают для всех систем M/M/1. Так же и все кривые M/M/2 имеют одну и ту же форму и одно и то же значение излома. Все кривые M/M/3 имеют одну форму и одну точку излома. И так далее.
Говорят, что две кривые /1 и /2 имеют одинаковую форму, если f1(x) k f2(x) для каждого значения и некоторой постоянной k. То есть две кривые имеют одинаковую форму, если их можно сде­лать идентичными за счет увеличения для одной из них масшта­ба по вертикальной оси в некоторое постоянное количество раз.
Все системы 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% среднее время отклика ухудшится до = 2S секунд (т.е. в два раза по сравнению с незагруженной системой). Когда значение коэффициента достигнет 75%, время отклика возрастет в четыре раза по отношению к незагруженной системе. Если же коэффициент исполь­зования достигнет 90%, то время отклика возрастет в десять раз! В системе M/M/8 время отклика возрастет до = 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


 









jAntivirus