Оцениваете производительность программной архитектуры? - PullRequest
1 голос
/ 26 сентября 2010

Я ищу инструменты, которые помогут мне оценить производительность программной архитектуры. Для этого конкретного проекта мне нужно смоделировать [распределенную] систему небольшого размера, сравнимую с промежуточным программным обеспечением, ориентированным на сообщения (MOM). Основываясь на модели, я хотел бы измерить производительность системы при определенных обстоятельствах. Кроме того, инструмент (ы) должен помочь мне принять решение о том, как изменение архитектуры повлияет на производительность системы.

Вот пример вопроса (следуя аналогии с MOM), на который я бы хотел ответить:
Как изменилась бы пропускная способность (измеряемая в сообщениях / с) всей системы, если бы уровень персистентности был изменен с внутреннего SQL-уровня на какой-то необычный новый NoSQL-сервер с возможной согласованностью? В [упрощенной] модели компонент, который должен сделать что-то постоянным (т.е. записать в БД), имеет операцию, которая задерживается на X мс до тех пор, пока поставщик постоянства не подтвердит. Если бэкэнд персистентности изменяется и подтверждение является мгновенным, то указанная задержка упадет до Y мс. Как уменьшение этой задержки повлияет на пропускную способность системы?

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

Ответы [ 6 ]

1 голос
/ 27 сентября 2010

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

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

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

Я не уверен, что вы действительно можете проверить «производительность» архитектуры - изТочка зрения, что она существует только «на бумаге».Известно, что самолеты, которые отлично выглядят на бумаге, убивают летчиков-испытателей.

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

0 голосов
/ 13 января 2011

Вероятно OMNeT ++ - это то, что наиболее близко к тому, что я имел в виду:

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

0 голосов
/ 26 сентября 2010

В этом документе представлен обзор нескольких подходов к получению моделей производительности из [формальных] спецификаций архитектуры программного обеспечения. Язык спецификации, используемый в большинстве методологий, - это UML, модели производительности [quote:] включают сети массового обслуживания (QN) и их расширения, называемые расширенными сетями массового обслуживания (EQN) и многоуровневыми сетями массового обслуживания (LQN), стохастическими сетями Петри с временным интервалом (STPN) ), Алгебры стохастических процессов (SPA) и имитационные модели .

0 голосов
/ 26 сентября 2010

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

0 голосов
/ 26 сентября 2010

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

При таком подходе вы получаете всю свободумир для моделирования, но изменение частей в вашей модели может занять очень много времени, если вы не начнете с хорошей объектной модели: вероятно, будет хорошей идеей использовать общие понятия, такие как «каналы» для связи между компонентами, а не прямо / явносоединительные компоненты.Применяются концепции ОО и лучшие практики.

0 голосов
/ 26 сентября 2010

Хотя это в первую очередь предназначено для сетевых исследований, имитатор ns-3 может использоваться для моделирования и имитации вашего приложения.Вероятно, это зависит от того, насколько ваше приложение ориентировано на сеть.ns-3 имеет класс Application как часть своей объектной модели, которая предназначена для моделирования всего, что выше TCP / UDP.Вы могли бы написать очень упрощенную версию логики вашего приложения, которая только посылает тарабарщины по сети и вводит задержки тут и там для определенных операций.NS-3 обеспечивает хорошую прослеживаемость.

...