Мы провели нагрузочное тестирование платформы DAP!

Хотите узнать, что мы сделали и какие результаты получили? Тогда читайтенаш краткий отчет об итогах тестирования.

Исходные условия тестирования

В ходе тестирования мы оценивали скорость работы базовых протоколов, оценивали число транзакций за секунду (Transactions per Second, TPS).
Тестирование было организовано следующим образом. Чтобы имитировать для тестирования среду, близкую к реальным процессам обмена блоками в сети, мы запустили обмен сетевыми пакетами внутри виртуальной приватной сети (VPN).
Это было нужно для следующих целей:
— для оценки всех побочных затрат на операции с памятью и сетью;
— для определения среднего времени обработки одного пакета, что позволит установить верхний предел теоретически возможного TPS.

Выводы и прогнозы, оценка скорости транзакций

На виртуальном и реальном процессорах, а так же на виртуальных и реальных сетях мы получили примерно схожие результаты для обработки одного сетевого пакета — 0.01-0.02 миллисекунд. Количество сетевых пакетов, обрабатываемых одним ядром процессора, составило 83 262,87.

Если же мы возьмем процессор более высокого качества, например, Xenon, то на нем мы можем ожидать скорость обработки пакетов в два с половиной раза выше, примерно 200 000 сетевых пакетов на одно ядро. Таким образом, для копирования данных туда-обратно со скоростью 1 000 000 пакетов в секунду нам потребуется всего лишь 5 ядер топового процессора Xenon. Всего в процессоре Xenon 24 ядра. С учетом этого мы можем сделать вывод: работа с сетью и памятью не является узким местом для нашего блокчейна. Так, на один такт, потраченный на работу с памятью и сетью, у нас остается целых 4-5 тактов на обработку полученных данных.

Проще говоря, на администрирование блокчейна и поддержание его базовой работоспособности будет уходить примерно ⅕ — ⅙ общей производительности системы. Остальная производительность системы будет использована для оперирования самыми разными данными в рамках транзакций: платежами, сообщениями, аудио- и видеопотоками.

Теперь перейдем к оценке скорости транзакций. Примерная оценка количества тактов у одного ядра процессора Xenon мощностью 5 ГГерц — это около 5 миллиардов тактов в секунду. Соответственно, 20 “лишних” ядер дают нам 100 миллиардов тактов в секунду.

В среднем для совершения одной арифметической операции требуется 3 — 4 такта (от нескольких операций за такт до 20 тактов на одну операцию). Возьмем с запасом — 10 тактов на одну операцию. Для совершения такой транзакции как проверка килобайтного публичного ключа или подсчета хеш-функции заголовка и т.п. должно с запасом хватить 10 000 операций. 10 000 операций — это 100 000 тактов на обработку одной транзакции. 100 миллиардов тактов делим на 100 000 тактов и получаем 10 миллионов транзакций в секунду!

Для наглядности в цифрах:
1 операция = 10 тактов
1 транзакция = 10 000 операций = 100 000 тактов
100 000 000 000 тактов (20 ядер Xenon) : 100 000 тактов (для одной транзакции) = 1 000 000 транзакций в секунду.

Таким образом, предел TPS для конечной системы мы оцениваем примерно в 1 — 10 миллионов транзакций в секунду.

Поделиться в facebook
Поделиться в google
Поделиться в twitter
Поделиться в linkedin
Поделиться в telegram
Поделиться в vk
Поделиться в pocket
Поделиться в email