Пользователи, работающие в оперативном режиме, выполняющие одну и ту же задачу вновь и вновь, чрезвычайно чувствительны к колебаниям времени отклика. Если бы у них был выбор, то большинство, вероятно, предпочло бы иметь постоянное двухсекундное время отклика онлайновой формы, чем такое же, в среднем двухсекундное, время отклика при 75% исполнений в течение одной секунды и 25% исполнений в течение семи секунд. Возможно, вы обратили внимание на то, что в системах с низкой загрузкой время отклика более или менее стабильно, но в сильно загруженных системах может очень сильно изменяться. Модель массового обслуживания объясняет, почему это происходит.
На рис. 9.19 изображено очень небольшое ухудшение времени отклика (от R1 к R2) многоканальной системы (т. е. m > 1) при увеличении коэффициента использования от значения р1 до р2. Обратите внимание, что значения R1 и R2 настолько близки друг к другу, что перекрываются соответствующие им метки на вертикальной оси. Однако справа от излома даже очень небольшое изменение коэффициента использования от р3 к р4 приводит к серьезному ухудшению времени отклика (от R3 к R4).
Из предыдущего раздела нам уже известно, что многоканальная система может обеспечить большую устойчивость времени отклика при высокой интенсивности поступления запросов, чем одноканальная система. Отличная масштабируемость, показанная на рис. 9.19, служит еще одной иллюстрацией этого явления. Однако пропускная способность даже самой большой многоканальной системы не безгранична, и когда интенсивность поступления запросов превысит этот ограниченный предел мощности, производительность быстро ухудшится.
А вот производительность одноканальных систем уменьшается более равномерно, как показано на рис. 9.20. На рисунке видно, что время отклика быстрее ухудшается справа от точки излома. Однако в системах с небольшим количеством параллельных каналов (т. е. с небольшим значением m), такое ухудшение более равномерно распределено по всему диапазону значений коэффициента использования, чем в системах с большим количеством параллельных каналов обслуживания (большими значениями m).
Одноканальная система массового обслуживания имеет меньшую масштабируемость, чем аналогично загруженная система с несколькими каналами обслуживания. То есть ее точка излома находится ближе к началу области утилизации. Но в любом случае излом присутствует в любой системе. В хорошо масштабируемых многоканальных систе-
мах при переходе нагрузки за точку излома пользователи системы начинают ощущать значительные колебания времени отклика.
Электронные таблицы (Microsoft Excel и подобные) позволяют проверить различные ситуации типа «что, если» с такой быстротой, о которой Агнер Эрланг мог только мечтать. Такие проверки могут избавить от бесконечных нервотрепок при общении с реальными конечными пользователями. Меня много раз просили определить, почему потерпел неудачу проект повышения производительности. В ряде случаев модель массового обслуживания M/M/m позволила быстро и точно объяснить, почему усовершенствование оборудования не привело к ожидаемому положительному воздействию на общую производительность. Модель массового обслуживания часто позволяла привести аргументы такого вида:
...Поэтому переход на процессор, на 100% более быстрый, чем прежний, не привел к ожидаемому повышению производительности. Более того, даже если бы вы могли вчетверо увеличить количество этих более быстрых процессоров, то все равно не достигли бы ожидаемого повышения производительности. Единственным способом достижения требуемой производительности является снижение частоты использования данной функции или же уменьшение длины кода, выполняемого при ее вызове.
Применение модели массового обслуживания на более ранних этапах в этих ситуациях могло предотвратить катастрофу, которой и было вызвано мое присутствие.
Использование модели массового обслуживания M/M/m в электронных таблицах учит нас тому, что каждый входной и каждый выходной параметр модели может служить предметом переговоров. Для того чтобы оптимизировать производительность системы, необходимо понимать, как параметры связаны друг с другом и какое экономическое воздействие оказывает выбор значения каждого из параметров. Рассмотрим перечень таких параметров и возможные варианты выбора: X
Интенсивность поступления запросов X - это параметр, который может стать мощным рычагом в руках аналитика по производительности. Многие аналитики вообще не рассматривают возможность обсуждения рабочей нагрузки с конечными пользователями, считая, что объем работы, который требуется от системы, жестко фиксирован. Но во многих случаях основной причиной ухудшения производительности системы является именно бесполезная нагрузка, например:
Приложение по расписанию отправляет уведомления по электронной почте всем пользователям каждые две минуты, при этом каждый из них читает уведомления лишь дважды в день. То есть интенсивность поступления уведомлений можно было бы снизить в 120 раз, с 30 в час до 0,25 в час.
Система с восемью процессорами чрезвычайно замедляет работу с пользователями в период с 14:00 до 15:00. Основным элементом нагрузки для этого промежутка времени является набор из 16 отчетов (пакетных заданий), каждый из которых требует около 30 минут процессорного времени. Эти отчеты никто не будет читать до 8:00 следующего дня. Таким образом, если запланировать запуск 16 пакетных заданий в полночь (вместо пиковых рабочих часов), то интенсивность поступления запросов на обслуживание процессором уменьшится настолько, что будет сэкономлено около восьми часов процессорного времени в период с 14:00 до 15:00.
Для того чтобы определить, сходится ли дебет с кредитом в различных бухгалтерских книгах, бухгалтеры каждый день формируют 14 отчетов о предварительном балансе. Каждый 200-страничный отчет требует выполнения 72 000 000 вызовов логического чтения Oracle (LIO), что занимает около 30 минут процессорного времени. К сожалению, пользователи не знают, что приложение поддерживает веб-страницу, на которой можно получить всю необходимую информацию о расхождениях в счетах, выполнив менее 100 операций LIO. То есть интенсивность поступления LIO для этих бизнес-операций можно снизить с миллиарда в день до приблизительно 1400.
Как быстрее всего сделать что-то? Надо найти способ не делать этого вообще. Часто оказывается, что этой цели вполне можно достичь, не потеряв никакой функциональности для бизнеса.
r max
Вполне возможно, что пользователи согласятся пойти на компромисс в том, что касается кратковременных повышений времени отклика, в особенности, если небольшие уступки могут сэкономить компании немалые деньги. Однако попытки убедить пользователей в том, что им следует смириться с низкой производительностью системы, вряд ли будут иметь успех. Так что если только это не жизненно необходимо, воздержитесь от предложения снизить rmax.
Как и в случае с rmax, пользователи, скорее всего, не захотят обсуждать p (долю времен отклика, которые не должны превышать rmax).
< Предыдущая | Следующая > |
---|