Проектирование производительности

редактировать

. Проектирование производительности охватывает методы, применяемые в течение жизненного цикла разработки системы для обеспечения нефункциональные требования к производительности (такие как пропускная способность, задержка или использование памяти ) будут выполнены. В качестве альтернативы он может называться разработка производительности системы в рамках системная разработка и разработка производительности программного обеспечения или разработка производительности приложений в рамках разработка программного обеспечения.

По мере того, как связь между успехом приложения и успехом в бизнесе продолжает получать признание, особенно в мобильной сфере, инженерия производительности приложений играет превентивную и совершенствующую роль в жизненном цикле разработки программного обеспечения. Таким образом, этот термин обычно используется для описания процессов, людей и технологий, необходимых для эффективного тестирования нефункциональных требований, обеспечения соответствия уровням обслуживания и оптимизации производительности приложений перед развертыванием.

Термин «проектирование производительности» охватывает больше, чем просто программное обеспечение и вспомогательную инфраструктуру, и поэтому термин «проектирование производительности» предпочтительнее с точки зрения макросов. Соблюдение нефункциональных требований также подтверждается после развертывания путем мониторинга производственных систем. Это часть управления ИТ-услугами (см. Также ITIL ).

Инженерия производительности стала отдельной дисциплиной в ряде крупных корпораций, где задачи выполняются отдельно, но параллельно с системной инженерией. Он широко распространен и включает людей из нескольких организационных единиц; но преимущественно внутри организации информационных технологий.

Содержание
  • 1 Цели проектирования производительности
  • 2 Подход к инженерии производительности
    • 2.1 Разработка
    • 2.2 Строительство
    • 2.3 Переход
  • 3 Управление услугами
    • 3.1 Управление уровнем обслуживания
    • 3.2 Управление мощностью
    • 3.3 Управление проблемами
  • 4 Мониторинг
  • 5 См. Также
  • 6 Ссылки
  • 7 Дополнительная литература
Цели проектирования производительности
  • Увеличение доходов бизнеса за счет обеспечения возможности обработки транзакций в системе требуемый срок
  • Устранение сбоев системы, требующих списания и списания усилий по разработке системы из-за сбоя целевой производительности
  • Устранение позднего развертывания системы из-за проблем с производительностью
  • Устранение неполадок, которых можно избежать из-за проблем с производительностью
  • Избегайте усилий по настройке системы, которых можно избежать
  • Избегайте дополнительных и ненужных затрат на приобретение оборудования
  • Снижайте увеличенные расходы на обслуживание программного обеспечения из-за проблем с производительностью в производство
  • Уменьшить увеличенное софтв - это затраты на обслуживание программного обеспечения, на которые влияют специальные исправления производительности
  • Снижение дополнительных операционных издержек для обработки системных проблем из-за проблем с производительностью
  • Выявление будущих узких мест путем моделирования по сравнению с прототипом
  • Увеличить возможности сервера
Подход к проектированию производительности

Поскольку эта дисциплина применяется в рамках нескольких методологий, следующие действия будут выполняться на разных этапах. Однако, если этапы рационального унифицированного процесса (RUP) используются в качестве основы, то действия будут происходить следующим образом:

Во время первой, концептуальной фазы программы или проекта, определены критические бизнес-процессы. Обычно они классифицируются как критические на основании значения дохода, экономии затрат или другой присвоенной бизнес-ценности. Эта классификация выполняется бизнес-подразделением, а не ИТ-организацией. В настоящее время выявляются и описываются риски высокого уровня, которые могут повлиять на производительность системы. Примером могут быть известные риски производительности для системы конкретного поставщика. Наконец, для этапа проработки определяются действия по производительности, роли и результаты. Действия и загрузка ресурсов включены в планы проекта на этапе разработки.

Доработка

На этом этапе определения критические бизнес-процессы разбиваются на критические варианты использования. Случаи проверки будут далее декомпозироваться по мере необходимости на переходы на одну страницу (экран). Это варианты использования, которые будут подвергаться управляемому сценарием тестированию производительности.

Тип требований, относящихся к проектированию производительности, - это нефункциональные требования или NFR. В то время как функциональное требование относится к тому, какие бизнес-операции должны выполняться, нефункциональное требование, связанное с производительностью, будет относиться к тому, насколько быстро эта бизнес-операция выполняется при определенных обстоятельствах.

Строительство

В начале этого этапа требуется ряд действий, связанных с инструментами повышения производительности. К ним относятся:

  • Определите ключевых членов группы разработчиков как экспертов в предметной области для выбранных инструментов.
  • Укажите инструмент профилирования для среды разработки / тестирования компонентов.
  • Указать инструмент автоматического тестирования производительности модуля (компонента) для среды разработки / тестирования компонентов; это используется, когда графический интерфейс пользователя еще не существует для управления разрабатываемыми компонентами.
  • Укажите автоматизированный инструмент для управления серверным модулем (компонентами) для среды разработки / модульного тестирования компонентов.
  • Укажите автоматизированный многопользовательский сквозной инструмент, управляемый сценариями, для среды разработки / тестирования компонентов; это используется для выполнения сценариев использования, управляемых экраном.
  • Идентифицировать инструмент загрузки тестовых данных базы данных для среды разработки / тестирования компонентов; это необходимо для того, чтобы оптимизатор базы данных выбирал правильные пути выполнения, а также для обеспечения возможности повторной инициализации и перезагрузки базы данных по мере необходимости.
  • Развертывание инструментов повышения производительности для группы разработчиков.
  • Необходимо провести презентации и обучение. дается членам группы разработки по выбранным инструментам.

Группа тестирования производительности обычно выполняет тесты производительности не в среде разработки, а в специализированной среде перед развертыванием, которая настроена как можно ближе к запланированному производству среда. Эта группа выполнит тестирование производительности по сравнению с тестовыми примерами, подтверждая соответствие критических вариантов использования указанным нефункциональным требованиям. Команда выполнит нагрузочное тестирование как для ожидаемой (средней), так и для пиковой нагрузки. Они часто запускают стресс-тесты, которые выявляют узкие места в системе. Собранные данные и результаты анализа будут возвращены группе, которая выполняет настройку производительности. При необходимости система будет настроена для приведения тестов на несоответствие в соответствие с нефункциональными требованиями.

Если инженерия производительности была должным образом применена на каждой итерации и каждой фазе проекта к этому моменту, мы надеемся, что этого будет достаточно для того, чтобы система могла получить сертификат производительности. Однако, если по какой-то причине (возможно, не были применены надлежащие рабочие методы проектирования производительности) есть тесты, которые нельзя настроить на соответствие, тогда необходимо будет вернуть части системы в разработку для рефакторинга. В некоторых случаях проблема может быть решена с помощью дополнительного оборудования, но добавление дополнительного оборудования быстро приводит к снижению отдачи.

Переход

На этом заключительном этапе система развертывается в производственной среде. Требуется ряд подготовительных шагов. К ним относятся:

  • Настройка операционных систем, сети, серверов (приложений, Интернета, базы данных, балансировщика нагрузки и т. Д.) И любого программного обеспечения для очередей сообщений в соответствии с базовыми контрольными списками и оптимизациями, определенными в среде тестирования производительности
  • Обеспечение развертывания и настройки всего программного обеспечения для мониторинга производительности
  • Статистика выполнения в базе данных после завершения загрузки производственных данных

После развертывания новой системы текущие операции повышают производительность, в том числе:

  • Проверка еженедельных и ежемесячных отчетов о производительности показывает, что критические варианты использования выполняются в соответствии с указанными нефункциональными критериями требований
  • Если варианты использования выходят за рамки критериев NFR, сообщать о дефектах
  • Определить прогнозируемые тенденции от ежемесячные и ежеквартальные отчеты, а также ежеквартально выполнять планирование мощностей управление
управление услугами

В рабочей области (развертывание после производства) выполнять Основное внимание в проектировании уделяется трем областям: управление уровнем обслуживания, управление мощностью и управление проблемами.

управление уровнем обслуживания

Управление уровнем обслуживания В области проектирования производительности речь идет о соглашениях об уровне обслуживания и соответствующем мониторинге систем, который служит для проверки соответствия уровня обслуживания, обнаружения проблем и выявления тенденций. Например, при развертывании реального мониторинга пользователей можно гарантировать, что транзакции пользователей выполняются в соответствии с указанными нефункциональными требованиями. Время ответа транзакции регистрируется в базе данных, так что запросы и отчеты могут выполняться по данным. Это позволяет анализировать тенденции, что может быть полезно для управления мощностью. Когда пользовательские транзакции выходят за рамки допустимого диапазона, события должны генерировать предупреждения, чтобы можно было обратить внимание на ситуацию.

Управление мощностью

Для управления мощностью проектирование производительности фокусируется на обеспечении того, чтобы системы оставались в пределах соответствия производительности. Это означает выполнение анализа тенденций для данных, созданных за прошлые периоды мониторинга, так что будущее несоблюдения требований можно предсказать. Например, если в системе наблюдается тенденция к замедлению обработки транзакций (что может быть связано с увеличением размеров набора данных, увеличением числа одновременных пользователей или другими факторами), то в какой-то момент система больше не будет соответствовать критериям, указанным в соглашения об уровне обслуживания. Управление мощностью отвечает за обеспечение того, чтобы дополнительная емкость была добавлена ​​до этой точки (дополнительные процессоры, больше памяти, новая индексация базы данных и т. Д.), Чтобы линии тренда были сброшены, и система оставалась в пределах указанного диапазона производительности.

Управление проблемами

В области управления проблемами методы проектирования производительности сосредоточены на устранении основной причины проблем, связанных с производительностью. Как правило, они включают настройку системы, изменение параметров операционной системы или устройства или даже рефакторинг прикладного программного обеспечения для решения проблемы низкой производительности из-за плохого дизайна или неправильной практики кодирования.

Мониторинг

Для обеспечения надлежащей обратной связи, подтверждающей, что система соответствует указанным в NFR показателям производительности, любая основная система нуждается в подсистеме мониторинга. Планирование, проектирование, установка, настройка и управление подсистемой мониторинга определяются соответствующим образом определенным процессом мониторинга. Преимущества заключаются в следующем:

  • Можно заключать соглашения об уровне обслуживания на уровне варианта использования.
  • Можно периодически включать и выключать мониторинг или поддерживать решение проблем.
  • Он позволяет создавать регулярные отчеты.
  • Он позволяет отслеживать тенденции во времени, такие как влияние увеличения пользовательской нагрузки и роста наборов данных на производительность на уровне сценария использования.

Этот компонент анализа тенденций нельзя недооценивать. Эта функциональность, если она реализована должным образом, позволит прогнозировать, когда данное приложение подвергается постепенно возрастающей пользовательской нагрузке, а растущие наборы данных будут превышать указанные нефункциональные требования к производительности для данного варианта использования. Это позволяет правильно составлять управленческий бюджет, приобретать и развертывать необходимые ресурсы для поддержания работы системы в рамках параметров нефункциональных требований к производительности.

См. Также
Ссылки
Дополнительная литература
Последняя правка сделана 2021-06-01 09:20:37
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте