Моделирование производительности - это сложная тема. Надеюсь, что эта глава помогла вам разобраться в технологии. И что еще важнее, надеюсь, вам стали понятны существующие ограничения. Мне не раз встречались аналитики, которые посвятили себя заведомо безуспешной борьбе с непреложными законами природы. Я построил эту главу так, чтобы вы не попали в эту ловушку. В заключение еще раз остановлюсь на основных моментах:
Метод проб и ошибок - это неэффективный, дорогой и ненадежный метод оптимизации. Если система соответствует условиям применения математической модели, то решение, полученное на ее основе, будет гораздо более эффективным.
Время отклика, по существу, является единственным параметром, который беспокоит конечных пользователей. Для пользователя время отклика - это продолжительность между отправкой запроса и возвращением первого байта ответа на этот запрос. Для теоретика массового обслуживания время отклика равно сумме времени обслуживания и задержки в очереди. Мы можем уменьшить время отклика, уменьшив одну из составляющих: время обслуживания или же задержку в очереди.
В нагруженных системах время отклика ухудшается из-за появления очередей. Бороться с этим можно, снижая нагрузку или же уменьшая время обслуживания. Аналитики по производительности часто забывают о том, что снижение рабочей нагрузки - вполне законная операция. Математическая модель массового обслуживания помогает аналитику выбрать компромиссное решение, позволяющее удовлетворить клиента и с точки зрения функциональности, и с точки зрения производительности.
Модель массового обслуживания M/M/m - это хорошо исследованная и хорошо проверенная модель прогнозирования производительности систем, в которых время между поступлениями запросов и скорость обслуживания распределены экспоненциально. Этим условиям соответствуют многие системы Oracle. В главе представлена полная реализация модели M/M/m в Microsoft Excel, программа на Perl, проверяющая, подчиняется ли имеющаяся выборка данных экспоненциальному распределению, а также полный набор подробных пояснений относительно того, как применять модель в проекте Oracle.
Одним из основных достоинств модели массового обслуживания является изменение нашего восприятия времени отклика. Модель выявляет четкую математическую зависимость между параметрами нагрузки, скорости обслуживания и длительности ожидания. Более того, она акцентирует внимание на том, что для оптимизации системы необходимо рассмотреть значения всех допускающих обсуждение параметров.
Наш пример с решением иллюстрирует весьма распространенную ситуацию: несмотря на то, что система ощущает нехватку именно ресурсов процессора, увеличение мощности процессора не помогает удовлетворению требований к производительности системы. В данном случае модель выявляет то, что часто справедливо и в реальной жизни: наиболее экономически эффективный способ повышения производительности системы заключается в избавлении от лишней нагрузки. Существуют два основных метода избавления от лишней нагрузки: освобождение от ненужных бизнес-функций и сокращение кода функций.
Модель массового обслуживания M/M/m игнорирует ряд факторов, которые должен принимать в рассмотрение аналитик. Например, модель предполагает существование абсолютной масштабируемости для m каналов обслуживания. Модель во многом является оптимистичной. Если оптимистичная модель прогнозирует низкую производительность системы, то и в реальности такая конфигурация даст низкую производительность. Однако если оптимистичная модель выносит положительный вердикт относительно производительности системы, это не обязательно означает, что в реальности такая система будет работать хорошо. Некоторые немоделируемые проблемы масштабируемости могут погубить проект.
< Предыдущая | Следующая > |
---|