Диссертация (1148255), страница 17
Текст из файла (страница 17)
При этом, осуществлялся эксклюзивный захват синхронизируемого объекта и, соответственно, глобальное обновление изменённых локально данных.Важно отметить, что смысл понятий «байт в секунду» и «пакетов в секунду» на данном уровне существенно изменяется. Как было показано выше, протокол МАКС DSM подразумевает обмен множеством сообщений между несколькими узлами для выполнения любой операции над распределёнными данными. Воизбежание путаницы, заменим понятие «пакетов в секунду» понятием «транзакций в секунду».
Под транзакцией будем понимать совокупность всех сообщениймежду всеми узлами, необходимых для выполнения типичной операции уровняМАКС DSM – от входа в критическую секцию до выхода из неё включительно.Таким образом, в транзакцию попадут сообщения (между Клиентом, Сервероми Копией) для выполнения эксклюзивной блокировки и её снятия, сопровождающегося обновлением изменённых распределённых данных. Под «размеромтранзакции» будем понимать размер группы распределённых переменных – тоесть это по-прежнему размер «полезных данных» в общем трафике, хотя понимание этих данных несколько изменилось.Первичное представление результатов измерений можно увидеть нарис.
3.9.Как и ожидалось, производительность существенно снизилась по сравнению с предыдущим этапом. Это объясняется уже изложенным выше фактом,что каждая транзакция требует нескольких операций уровня DSM (типа «выполнить эксклюзивную блокировку» и пр.), а каждая из операций приводит кнеобходимости отправки/приёма нескольких сообщений низлежащего уровня.Скорость, байт в секунду (bps)304,000283,000262,00024221,00020002040608010012014016018020022024018Скорость, транзакций в секунду (tps)102Длина группы распределённых переменных, байт (bytes)Рисунок 3.9 – Cкорость DSM уровняСкорость обмена «полезными» данными уверенно выходит на уровень около4,000 bps, причём увеличение размера транзакции всегда положительно сказывается на общей пропускной способности системы.Характер графика позволяет предположить, что выбранный масштаб наданном уровне становится недостаточен для понимания происходящего – действительно, количество транзакций в секунду измеряется единицами и десятками, и небольшие флуктуации могут сглаживаться дискретностью графика1 .Приведем данные этого же эксперимента, указывая количество транзакций на10-ти секундных интервалах – рис.
3.10.Действительно, выраженная линейность с редкими скачкообразными изменениями теперь на графике отсутствует, однако из-за разных типов и размеров пакетов уровня DSM, а также сложного протокола взаимодействия узлов,локальные помехи в эфире, как и ожидалось, гораздо меньше влияют на общую скорость работы системы и график становится гораздо более линеен чемна предыдущем уровне протоколов.
Кроме того, вероятно играет роль и тотфакт, что на данном уровне между отправкой пакетов появляются задержки,1А именно – использующимся округлением. Если за 1 секунду мы совершили 2.6 транзакции, используется значение 3, что при малом количестве транзакций оказывает существенное влияние на характер графика.30040,00028030,00026020,00024022010,0002000180020406080100120140160180200220240Скорость, транзакций в 10 секунд (tp10s)Скорость, байт в 10 секунд (bp10s)103Длина группы распределённых переменных, байт (bytes)Рисунок 3.10 – Cкорость DSM уровня (масштаб 10 секунд)связанные с работой алгоритмов МАКС DSM, что также может привести кповышению стабильности.
Данная гипотеза может быть проверена в будущихработах по развитию созданного решения.3.7.2. Зависимость производительности от количества узловВ разделе 2.1.1 мы определили требование, что создаваемая в рамках данного исследования система должна обеспечивать возможность совместной работы от одного до полутора десятков устройств.
Однако в предыдущих разделахмы убедились в работоспособности созданного решения лишь для одного и двухузлов. Интерес также представляет не только факт работоспособности решенияв максимальной конфигурации, но и зависимость производительности системыот количества устройств в ней. Текущий раздел посвящён поиску ответов наданные вопросы.С целью минимизации финансовых и временных затрат было приняторешение совместить испытания на реальном оборудовании с имитационныммоделированием. Кроме сокращения трудозатрат данный подход позволяет вперспективе моделировать труднодостижимые на практике ситуации как по104количеству устройств так и по состоянию эфира. Частью программного имитационного комплекса стало штатное ПО МАКС DSM, дополненное модельюрадиопередатчика и моделью эфира.
Достоверность имитационной модели подтверждалась сравнением показателей имитационного и аппаратного комплексов в схожих условиях. С целью повышения достоверности имитационного ПОаппаратный комплекс был дополнен еще тремя устройствами, аналогичнымиописанным в разделе 3.7.1. Таким образом, программно-аппаратный стенд позволил проводить испытания для пяти устройств в максимуме, большее же числоузлов в системе имитировалось программно.Результаты испытаний имитационного комплекса на низлежащих относительно МАКС DSM сетевых уровнях в данном разделе опущены. Достаточносказать, что были достигнуты сравнимые с полученными на реальном оборудовании результаты, за исключением несущественных артефактов, предположительно связанных с особенностями реализации радиопередатчика, прокомментированных ранее.
Сосредоточимся на испытаниях уровня DSM. На рисунке3.11 представлены результаты измерений производительности в зависимостиСкорость, транзакций в 10 секунд (tp10s)от количества устройств в системе, произведённых на реальном оборудовании.3002 узла3 узла4 узла5 узлов25020015010050020406080100120140160180200220Длина группы распределённых переменных, байт (bytes)Рисунок 3.11 – Cкорость DSM уровня (2–5 узлов)240105Отметим, что результаты замеров для двух устройств в системе использованы те же, что были представлены пунктирной линией на рисунке 3.10 выше.Графики на рис. 3.11 демонстрируют, что с ростом количества узлов в системе, её производительность ожидаемо снижается. Характер снижения – гиперболический (что в дальнейшем мы проверим на большем количестве устройств).Вместе с тем, мы знаем, что протокол МАКС DSM должен вносить околоконстантную задержку в производительность системы начина с момента, когдаколичество узлов в системе обеспечивает работу всех ролей (Клиент, Сервер,Копия) – то есть трёх.
В связи с этим возникает гипотеза, что причина существенного влияния количества узлов на производительность системы – в низлежащем сетевом уровне. Проверим данную гипотезу, произведя аналогичныезамеры для уровня «гарантированная доставка», рассмотренного ранее в конфигурации двух устройств. Результаты новых измерений изображены на рисункеСкорость, пакетов в секунду (pps)3.12.3502 узла3 узла4 узла5 узлов30025020015010050020406080100120140160180200220240Длина пакета, байт (bytes)Рисунок 3.12 – Cкорость уровня гарантированной доставки (2–5 узлов)Гиперболическаязависимостьпроизводительностиотколичестваустройств обусловлена реализацией данного уровня по методу из категорииprivilege-based algorithms [19] – специальный токен передается от устройства кустройству особым сообщением, и только узел, обладающий токеном в данный106момент, может вести передачу в эфире.
Производительность подобной системына данном уровне определяется формулой 1/ , где - количество узлов всистеме1 . Таким образом, для отправки пакета требуется полный оборот кольцаиз устройств. Чем больше устройств, тем дольше данный оборот длится, нотем меньший вклад в величину задержки вносит включение в систему новыхузлов.При сравнении рисунков 3.11 и 3.12 может возникнуть вопрос – в связи счем графики уровня DSM сходятся медленнее графиков низлежащего сетевогоуровня.
Имеется несколько причин:1. Объем служебной информации на DSM уровне значительно выше (в среднем 8 пакетов низлежащего уровня на одну транзакцию, плюс, дополнительные служебные поля в каждом пакете). Это является основной причиной снижения производительности.2. Постоянная составляющая общего замедления на DSM уровне также увеличена (только 3 из 8-ми пакетов транзакции включают в себя пользовательские данные). Это приводит к снижению влияния на производительность длины группы распределённых переменных.3. Протокол МАКС DSM включает в себя операции вида «запрос-ответ»,что требует дополнительно «оборота кольца» (в текущей реализации низлежащего уровня, основанной на методе передачи токена между узлами).4. Низлежащий уровень «умеет» передавать сразу несколько пакетов с данными, но в случае DSM данная возможность задействуется только в случае одновременной работы с несколькими группами разделяемых переменных, что не происходит в имеющихся тестах производительности.Таким образом полученные на двух последних рисунках графики соответствуют нашим ожиданиям.
Производительность же МАКС DSM составляет,1Вклад других компонент протокола, например, необходимость подтверждения приёма сообщений, мыдля наглядности опускаем.107округленно, /10, где – скорость низлежащего сетевого уровня. Полученноена практике значение хорошо согласуется с нашим представлением о производительности, основанном на логике протокола МАКС DSM – в разделе 3.3.1 былопоказано, что эксклюзивная блокировка реализуется восемью сообщениями, поэтому восьмикратное замедление относительно низлежащего уровня неизбежно. Реальное замедление оказалось несколько выше, что объясняется теми жепричинами, что были указаны выше в качестве влияющих на характер сходимости графиков.Остаётся открытым вопрос производительности в случае присутствия в системе полутора десятка устройств. Как было описано выше (см.
раздел 3.7.2),для проведения данного вида измерений использовалось моделирование. РеСкорость, транзакций в 10 секунд (tp10s)зультаты представлены на рисунке 3.13.3002001000020406080100120140160180200220240Длина группы распределённых переменных, байт (bytes)Рисунок 3.13 – Cкорость DSM уровня (2–16 узлов)При проведении данных замеров в модели была отключена имитация зашумлённости эфира, так как характер графиков в этом случае проявляетсянаиболее явно. Результирующие графики изображены в едином стиле, отсутствуют их расшифровка – так как в данном случае нам нет необходимостианализировать графики по отдельности. Чем ниже расположен график, тем108больше устройств присутствовало в системе, изменяясь от 2 до 16. Данные графики подтверждают высказанные ранее предположения и позволяют обнаружить нижнюю границу производительности, которая составила 17 транзакцийв 10 секунд для системы из 16-ти устройств и размере группы распределённыхпеременных в 229 байт, что соответствует эффективной производительности389 байт в секунду.Нижняя граница производительности может показаться чрезмерно низкой, однако данная граница интересна лишь в смысле прикладного использования созданного решения, включая все сетевые уровни, где наибольший вкладв снижение производительности вносит уровень гарантированной доставки сообщений.