В своей статье на Хабре Максим Ажгирей, руководитель команды разработки в СберТехе, рассказал об инструменте нагрузочного тестирования SyTester, над которым работает вместе с командой. Максим поделился, какие проблемы удалось решить благодаря этому инструменту, и особенностях его версий.

С разрешения автора мы сделали выжимку из текста, а полностью материал под названием «Меньше ресурсов при большей нагрузке: как мы создали простой инструмент нагрузочного тестирования» читайте по ссылке.
Что такое SyTester?
SyTester — простой, но эффективный инструмент нагрузочного тестирования. В первую очередь он предназначен для разработчиков, которым нужно быстро проводить тесты с высокими требованиями (от 100 000 транзакций в секунду) и различными протоколами.
Доступен он в двух версиях — Enterprise Edition (EE) для больших команд и бесплатной Community Edition, которую можно «потрогать» на GitVerse.
Какие проблемы решали
До перехода на SyTester периодически возникали проблемы с нагрузочным тестированием, например:
1. Асинхронные протоколы.
Сложности с корреляцией запросов и ответов, особенно при использовании разных генераторов нагрузки.
2. Централизованное управление.
Проблемы с одновременным запуском нескольких тестов, что могло привести к путанице с запросами и ответами.
3. Высокая нагрузка.
Необходимость проведения тестов с изменяющейся нагрузкой для разных протоколов, что было сложно с предыдущими инструментами.
4. Разработка тестов.
Существующие инструменты часто имеют недостатки в интерфейсе и документации.
Все это удалось решить с переходом на SyTester. В статье рассмотрены варианты решения проблемы тестирования асинхронных протоколов и как они реализованы в SyTester:
1. Send, wait и read в одном потоке. Простой, но не масштабируемый вариант.
2. Send и read в разных потоках одного процесса. Помогает подавать гораздо больше нагрузки, что в первом варианте, и экономить ресурсы. Правда, потребуется синхронизировать запросы с ответами. Такой вариант поддерживается в SyTester СE.
3. Send и read в разных потоках разных процессов. Здесь уже нет ограничений одного генератора нагрузки, а значит можно подавать еще большую нагрузку. При этом потребуется внешнее хранилище для синхронизации запросов с ответами. Такой вариант реализован в SyTester EE.
Как решали остальные проблемы? В чем разница между EE и CE? Ответы на оставшиеся вопросы (в деталях и со схемами), а также примеры удобного и простого GUI SyTester ищите на Хабре.