
Привет, Хабр! Меня зовут Ильнар Зайнуллин, я системный инженер в К2Тех. Сегодня хочу поговорить о балансировщиках. Пока всё хорошо, о них вспоминают разве что при плановом расширении, очередной миграции или когда нужно красиво разрулить сертификаты. Когда же внезапно начинаются жалобы «подтормаживает», «отваливается», «иногда долго открывается» — балансировщик быстро становится «главным подозреваемым», даже если на самом деле виноваты сеть, backend или конкретный клиент.
В этой статье разберу три решения для закрытия проблемы с «главным подозреваемым»: F5 BIG-IP, Citrix NetScaler и Termidesk Connect. Если решения от F5 и Citrix хорошо известны на рынке, то Termidesk Connect — достаточно молодое решение от «Группы Астра». Релиз версии 1.0 состоялся весной 2025 года, под конец года вышел релиз 1.2 — его-то я и разберу в статье.
Логика сравнения продуктов максимально приземленная: одинаковые вводные, единая методика и попытка посмотреть на поведение «как в жизни». У меня нет цели выбрать лучшее из представленных решений, скорее — честно показать сильные стороны и возможные подводные камни.
Функции балансировщика давно уже вышли за рамки простой раздачи трафика между несколькими серверами. В реальной жизни это и TLS (с его рукопожатиями, настройками и неожиданными эффектами), и L7-логика, и health-check’и, и таймауты, и поведение при деградации сети, и предсказуемость под пиками. И что особенно важно, это ещё и комфортная эксплуатация: насколько удобно жить с решением каждый день — наблюдать, разбирать инциденты, обновляться и не превращать каждое изменение в мини-проект.
В этом сегменте много лет на слуху два решения: F5 BIG-IP и Citrix NetScaler, и во многих инфраструктурах они воспринимаются как привычные, зрелые инструменты. Но на рынке появляется всё больше альтернатив, в том числе российских, и в какой-то момент возникает вопрос: как новые решения проявят себя в сравнении с признанными лидерами, которое мы проведем в условиях, максимально приближенных к реальным? Решения тестировались на стенде на практических сценариях:
нагрузочные проверки (чтобы понять, как решения держат поток запросов и что происходит с задержками);
проверки под HTTPS/TLS (потому что именно там часто прячутся сюрпризы);
прикладной сценарий с загрузкой большого файла (чтобы увидеть поведение, приближенное к пользовательскому);
деградация сети (потому что идеальный канал связи бывает только на презентациях).
Для каждого теста отдельно будут описаны вводные, результаты и графики, и описание с трактовкой полученного результата. Еще до тестов мы договорились о следующих подходах:
Все три балансировщика запускались на одинаковых по выделенным ресурсам виртуальных машинах. Мы сознательно выбрали именно такой метод, а не физические сервера: виртуализация обеспечивает максимально повторяемые условия и исключает влияние аппаратных различий.
В тестах не выполнялся тюнинг производительности, не было цели выжать максимум из каждого решения: использовались типовые настройки и дефолтное поведение продуктов.
На графиках мы использовали следующее обозначение: красный — BIG-IP F5, зелёный — Termidesk Connect, синий — Citrix NetScaler.
Все остальное — специфика стенда и тестов. Итак, мы начинаем!
Тестовое окружение
Тестовый стенд был развернут на серверах с процессорами Intel(R) Xeon(R) CPU E5-2650 v4. Если вы решите повторить проведенные тесты, то в зависимости от модели процессора результаты могут отличаться для всех решений.
Стенд включал следующий набор виртуальных машин:
Решение |
Тип |
Ресурсы |
Кол-во |
ПО |
BIG-IP F5 |
Виртуальный апплайанс |
8 vCPU/16 Гб ОЗУ |
1 |
BIG-IP F5 17.5.1.3 Build 0.0.19 |
Citrix NetScaler |
Виртуальный апплайанс |
8 vCPU/16 Гб ОЗУ |
1 |
Citrix NetScaler 14.1: Build 47.46.nc |
Termidesk Connect |
Виртуальный апплайанс |
8 vCPU/16 Гб ОЗУ |
1 |
Termidesk Connect 1.2 |
Веб-портал |
ВМ |
4 vCPU/8 Гб ОЗУ |
2 |
Nginx |
Сервер генерации трафика |
ВМ |
16 vCPU/16 Гб ОЗУ |
2 |
k6 v0.52.0 Curl 7.81.0 Wget 1.21.2 tc utility, iproute2-5.15.0, libbpf 0.5.0 |
В тестировании используем k6, curl и wget — общеизвестные инструменты для генерации и анализа нагрузки, tc позволяет гибко моделировать сетевые деградации, а Grafana + InfluxDB обеспечивают удобную визуализацию метрик.
Часть 1. Тестирование SSL-производительности и поведения под нагрузкой
В первом тесте проверяли, как BIG-IP F5, Citrix NetScaler и Termidesk Connect ведут себя под высокой HTTPS-нагрузкой. Задача — поймать момент, когда система начинает сдавать: растут задержки, появляются ошибки, проседает фактический RPS, упирается CPU.
Как мы тестировали
Для прозрачности и достоверности результатов применяли единую методику сравнения.
Базовые параметры:
Нагрузку генерировали k6 в режиме ramping-arrival-rate: RPS рос ступенчато, шаг — каждые 10 секунд.
Каждый запрос создавал новое TLS-соединение (Connection: close), чтобы исключить «облегчающий» эффект keep-alive.
Тело ответа не загружалось (discardResponseBodies: true), чтобы не упираться в IO.
Лимит VU — до 20 000, чтобы нагрузка упиралась именно в балансировщик, а не в генератор трафика.
Для каждого балансировщика брали свой диапазон RPS. Причина простая: различия в архитектуре и предельной производительности, при использовании единого, как правило заниженного, порога тест потерял бы информативность — все результаты оказались бы примерно сопоставимыми.
Здесь задача была другая: довести каждое решение до его реального предела и посмотреть, как именно проявляется деградация — через задержки, ошибки, рост времени TLS-handshake.
Результаты: пропускная способность (RPS)

На графике видно, какой фактический RPS держал каждый балансировщик во время своего прогона:
BIG-IP F5. В ходе прогона фактический RPS держится примерно в диапазоне 5-7 тыс., постепенно растёт.
Termidesk Connect. Большую часть времени RPS колеблется около 2,5-3,5 тыс. В конце — короткий скачок до ~7 тыс.
Citrix NetScaler. После старта быстро выходит на 6-6,7 тыс. и держит этот уровень ровно.
Среднее время ответа (latency)
Эти графики показывают среднее время выполнения HTTP-запроса на каждом прогоне. Пока балансировщик справляется с нагрузкой, линия лежит почти у нуля. С появлением очередей — растет задержка.
BIG-IP F5 почти весь прогон задержка сохраняется на низком уровне, в конце есть короткий пик — примерно до 1 s.

Termidesk Connect. Задержка растёт по мере нагрузки от ~0.2-0.3 s до ~3.0-3.2 s и держится на этом уровне до конца прогона.

NetScaler большую часть прогона задержка на минимуме, а ближе к концу — плавный рост примерно до 0.4-0.5 s.

95-й перцентиль (P95)
P95 показывает, во сколько укладываются 95% запросов: нагляднее, чем среднее, потому что реагирует на очереди и редкие «долгие» ответы.
BIG-IP F5. Почти весь прогон P95 держится низко (десятки миллисекунд), в конце есть короткий пик примерно до 1 s.

Termidesk Connect. P95 растёт вместе с нагрузкой и выходит на уровень ~3.4-3.6 s, дальше держится примерно там же до конца прогона.

NetScaler долго остаётся низким, ближе к концу плавно растёт примерно до 0.5-0.6 s.

Время установки TLS-соединения (handshake)
Графики показывают задержку рукопожатия между клиентом и сервером, которое происходит перед началом обмена данными по HTTPS.
BIG-IP F5 большую часть прогона handshake держится на десятках миллисекунд (примерно 20-80 ms), к концу поднимается до ~150-200 ms.

Termidesk Connect. Время установки TLS-сессии изначально также составляет десятки миллисекунд, однако по мере роста нагрузки оно резко увеличивается, достигая примерно 1.4–1.5 секунд.

Citrix NetScaler стартует примерно с десятков миллисекунд, дальше постепенно растёт и к концу прогона выходит примерно на ~400-450 ms.

Результаты тестирования SSL-производительности и поведения под нагрузкой
Если суммировать все метрики, то результат выглядит так:
BIG-IP F5. Держит полку около 5-7 тыс. RPS; средняя задержка почти весь прогон низкая, с коротким пиком в конце; P95 большую часть времени остаётся на десятках миллисекунд; время TLS растёт от десятков миллисекунд до ~150-200 ms ближе к финишу.
Termidesk Connect. Рабочий уровень производительности составляет около 3–3,5 тыс. RPS; в конце теста наблюдается всплеск из-за обработки накопившихся запросов. При росте нагрузки задержки (latency) и 95-й процентиль достигают примерно 3–3,6 с, а время установки TLS-сессии увеличивается до ~1,4–1,5 с.
Citrix NetScaler — средний, но устойчивый результат. Полка около 6-6,7 тыс. RPS, стабильная; средняя задержка низкая, к концу растёт до ~0.4-0.5 s; P95 поднимается до ~0.5-0.6 s; TLS-handshake плавно растёт до ~400-450 ms.
При интенсивной нагрузке HTTPS-запросами у Termidesk Connect в первую очередь растут задержки (latency/P95) и время установки TLS-соединения. В то же время BIG-IP F5 дольше сохраняет низкие показатели задержек, а у NetScaler наблюдается более плавный рост метрик на пиковых ступенях нагрузки.
Часть 2. Сравнительное тестирование скорости выгрузки большого файла (1 GB)
Во второй части переходим от синтетических RPS-замеров к более прикладному сценарию — скачиванию большого файла объёмом 1 GB. Это ближе к реальному использованию: обновления, образы, большие архивы.
Здесь уже нет шифрования, весь трафик идёт по-обычному HTTP. Цель — посмотреть, насколько уверенно каждый балансировщик умеет проксировать большой поток данных:
насколько быстро устанавливается соединение;
как скоро клиент получает первый байт;
какую среднюю скорость удаётся держать на протяжении всей загрузки.
Методика
Для каждого решения запускался один и тот же bash-скрипт: каждые 10 секунд он делал curl-запрос на скачивание 1 GB файла. С каждого запуска автоматически собирались метрики:
time_connect — время установления TCP-соединения;
TTFB — время до первого байта (time_starttransfer);
speed_download — средняя скорость передачи;
и другие параметры, отправляемые в InfluxDB.
Условия были максимально честными:
все балансировщики и backend-сервера находились в одной сети;
задержки минимальны и одинаковы;
backend-узлы одинаковой конфигурации.
Time To First Byte (TTFB)

TTFB показывает, сколько времени проходит от установки соединения до получения первого байта ответа. Проще говоря, это задержка перед началом передачи данных.
Результат:
BIG-IP F5. Основное значение держится примерно в районе 1,6-2,0 ms, но встречается заметный разовый пик примерно до 4,3 ms — поэтому кривая выглядит менее ровной.
Termidesk Connect. В целом стабильные 1,4-1,8 ms без резких скачков, линия ровная.
Citrix NetScaler. Самый низкий — примерно 1,0–1,4 ms, иногда поднимается до ~1,5 ms, при этом без выбросов.
Средняя скорость скачивания

Эта метрика показывает итоговую пропускную способность: с какой средней скоростью клиент получал файл размером 1 GB через балансировщик.
BIG-IP F5. Пропускная способность держится довольно ровно в районе ~150-160 MiB/s, без резких провалов.
Termidesk Connect. Заметно выше остальных — в основном ~210-245 MiB/s, есть короткий провал в начале серии, дальше скорость стабилизируется и колеблется в этом диапазоне.
Citrix NetScaler. Самая низкая скорость — примерно 92-98 MiB/s, линия почти ровная.
Время установления TCP-соединения (time_connect)

BIG-IP F5. В основном около 0,45-0,6 ms, но есть заметные редкие всплески — примерно до 1,4 ms и один пик до ~2,6 ms.
Termidesk Connect держится ровно в районе 0.35-0.5 ms, без резких скачков.
Citrix NetScaler. Время составляет примерно 0.35-0.5 ms, линия тоже ровная, местами даже чуть ниже остальных.
Утилита wget
Чтобы перепроверить результаты, отдельно прогнали скачивание того же 1 GB файла через wget — без разложения на метрики curl, просто как обычную длительную загрузку. По средней скорости получилось так:
F5 BIG-IP — 57.8 MB/s;
Termidesk Connect — 170 MB/s;
Citrix NetScaler — 106 MB/s.
Разница с графиками из curl — нормальная история: curl в нашем сценарии даёт больше измерительных точек (соединение, старт передачи, TTFB), а wget, по сути, показывает, как система держит длинный непрерывный поток данных. Поэтому в wget картина может отличаться, а относительное позиционирования решений — меняться. Это не ошибка, а следствие разных паттернов нагрузки и того, как балансировщик ведёт себя на коротких запросах против длительной передачи.
Часть 3. Поведение под потерей пакетов и нестабильной сетью
Третья серия тестов моделирует реальную «плохую» сеть: мобильный интернет, общественный Wi-Fi или загруженный корпоративный VPN. Мы проверяли, как BIG-IP F5, Termidesk Connect и Citrix NetScaler обрабатывают HTTPS-трафик, если клиентская сеть частично теряет пакеты и дает высокий, нестабильный RTT.
Главная задача — понять, какое из решений лучше справляется с непредсказуемыми задержками, как меняется число ошибок и насколько падает стабильность обслуживания.
Мы не подбирали и не «выжимали» оптимальные TCP-параметры под каждый продукт: никаких специальных TCP-профилей и тонких настроек под потери/RTT не включали. Все три решения тестировались в режиме as is — с базовой конфигурацией.
Как мы моделировали плохую сеть
Мы использовали tc с комбинацией очередей prio и netem, чтобы для каждого балансировщика трафик попадал в «проблемный» класс:
5% потерь пакетов;
задержка ~150 ms;
джиттер 30 ms;
нормальное распределение задержек.
Для каждого решения создавался свой фильтр, чтобы условия были абсолютно идентичны.
Backend-серверы при этом работали в идеальной сети — все сложности были только со стороны клиента.
Профиль нагрузки
Мы использовали k6 в профильном режиме ramping-arrival-rate с фиксированными 1000 RPS:
3 этапа по 10 секунд;
Connection: close для каждого запроса;
отключенные тела ответов (discardResponseBodies: true).
Это позволило понять, кто умеет работать под постоянной нагрузкой, когда сеть начинает сыпаться.
Поведение без деградации сети

Сначала проверили, как всё работает в идеальных условиях — без задержек, потерь пакетов и прочих проблем. На графиках видно, что все три балансировщика спокойно держат нагрузку: RPS ровный, задержки стабильные, никаких провалов.
Результаты под деградирующей сетью

Сводная таблица ключевых метрик
Метрика |
BIG-IP F5 |
Termidesk Connect |
Citrix NetScaler |
Примечание |
Ошибки |
http_req_failed 6.74% ; checks 93.25% (25980/1880) |
http_req_failed 17.14% ; checks 82.85% (23164/4792) |
http_req_failed 14.95% ; checks 85.04% (21939/3857) |
http_req_failed – общий процент запросов, которые k6 пометил как неуспешные на уровне HTTP/транспорта. |
Dropped iterations |
2124 |
2034 |
4193 |
k6 планирует запуски итераций по расписанию, и если в нужный момент нет свободных VU (обычно из-за роста латентности/длительности итераций), часть итераций «не стартует» и считается dropped. |
RPS стабильность |
662.0 req/s (из 1000 = 66.2%) |
559.1 req/s (из 1000 = 55.9%) |
436.3 req/s (из 1000 = 43.6%) |
Практический индикатор «удержания цели по нагрузке»: сравнение фактического http_reqs/s с целевыми 1000 iters/s в сценарии; чем ниже процент достижения, тем сильнее система/генератор не выдерживает заданный темп. |
HTTP latency p95 |
613 ms |
2010 ms |
1630 ms |
p95 — это «хвост» задержек: 95% запросов быстрее этого значения, а 5% — медленнее; удобно сравнивать деградацию под нагрузкой и влияние очередей/таймаутов. |
TLS-handshake avg |
0.818 s |
0.389 s |
1.790 s |
Среднее время TLS рукопожатия отражает «среднюю стоимость» установления защищённого соединения (без привязки к обработке запроса приложением) и часто растёт при дефиците ресурсов на фронте/балансировщике или проблемах сети. |
TLS-handshake p95 |
4.03 s |
2.14 s |
10.46 s |
p95 TLS особенно полезен для диагностики пиков/очередей: даже если среднее нормальное, высокий p95 означает, что заметная доля пользователей будет «залипать» на установлении TLS. |
p95 iteration_duration |
7.27 s |
5.59 s |
12.90 s |
iteration_duration — время выполнения всей итерации VU (весь пользовательский сценарий), поэтому p95 здесь показывает «хвост» по end-to-end сценарию, а не только по одному HTTP-запросу. |
Общая устойчивость |
Высокая |
Средняя |
Низкая |
Итоговая качественная оценка по сочетанию: меньше ошибок, меньше dropped, ближе фактический RPS к целевому, ниже p95 по HTTP/TLS и по длительности итерации — значит, система устойчивее при заданной нагрузке. |
Теперь разберем поведение каждого решения.
BIG-IP F5
Неуспешных запросов меньше всего (6,74%), и чаще всего возвращается нормальный ответ со статусом 200 — успешных проверок 93,25%.
По нагрузке он ближе всех к тому, что мы пытались дать: вместо 1000 запросов в секунду получается примерно 662 (то есть 66%), и пропущенных запусков (dropped iterations) 2124 — меньше, чем у NetScaler, значит тест реже не успевает выдавать плановый темп.
По задержкам результат также лучше, чем у остальных: 95% запросов укладываются примерно в 613 мс, и хотя редкие длинные итерации под нагрузкой есть (p95 итерации 7,27 с), в целом хвост по времени заметно спокойнее, чем у NetScaler.
Termidesk Connect
В условиях нестабильного соединения наблюдаются небольшие отклонения в работе: примерно 17% запросов завершаются с ошибками, а 83% соответствуют ожидаемому статусу 200.
Средняя пропускная способность составляет около 559 запросов в секунду (56% от целевого значения), при этом зафиксировано 2034 случая, когда нагрузка не была достигнута в запланированном объеме.
По задержкам картина такая: 95% запросов укладываются примерно в 2 секунды, что заметно хуже, чем у BIG-IP, но зато TLS-соединения устанавливаются стабильнее — в среднем около 0,4 секунды, а в 95% случаев не дольше 2,1 секунды.
Citrix NetScaler
По нагрузке хуже остальных держит темп: вместо 1000 запросов в секунду выходит около 436 (то есть примерно 44% от цели), и при этом больше всего «пропущенных» запусков — dropped iterations 4193.
По ошибкам не самый плохой, но и не лучший: 14,95% запросов считаются неуспешными, а успешных ответов со статусом 200 — около 85%.
Самая большая проблема — TLS и «длинные хвосты»: установка TLS в среднем занимает 1,79 секунды, а в 95% случаев может растягиваться до 10,46 секунды. Плюс 95-й перцентиль времени одной итерации сценария — 12,90 секунды, то есть заметная часть запросов/сценариев начинает выполняться очень долго.
Результаты тестирования под нестабильной сетью
BIG-IP F5 — минимальные ошибки, максимальный checks, лучший p95 HTTP и наибольший процент достижения целевого RPS.
Termidesk Connect — TLS устанавливается быстрее всех, но цена за это — максимальная доля ошибок и самый высокий p95 HTTP.
Citrix NetScaler — наиболее чувствителен к плохой сети: хуже всех удерживает целевой RPS, имеет максимум dropped iterations и самые тяжёлые TLS-«хвосты» и p95 длительности итерации.
Часть 4. Реакция балансировщиков на падение backend-сервера
Что делает балансировщик, когда один из backend-серверов внезапно перестаёт отвечать?
В жизни это происходит чаще, чем хотелось бы: сервер завис, контейнер упал, база данных недоступна. Главное — чтобы балансировщик быстро понял, что узел мёртв, и не слал туда новые запросы.
Важно: redispatch/повторный запрос на другой backend намеренно не включали — хотели увидеть базовую реакцию балансировщика и health-check’ов на падение узла.
Как мы тестировали
Стенд остался тем же: все машины в одной сети, минимальные задержки, одинаковые backend-серверы. На всех балансировщиках настроили идентичные health-checks:
interval 2 s — проверка раз в 2 секунды;
resptimeout 1 s — если ответ не получен за 1 секунду, попытка считается проваленной;
retries 1 — один ретрай перед признанием узла недоступным;
successRetries 1 — одной успешной проверки достаточно, чтобы вернуть сервер в пул.
Нагрузка та же: 1000 RPS через k6, три этапа по 10 секунд, Connection: close. Через 10 секунд после старта мы вручную выключали Nginx на одном из backend-серверов — полный и мгновенный отказ.
Сводные результаты
Метрика |
BIG-IP F5 |
Termidesk Connect |
Citrix NetScaler |
Успешных ответов |
84.24% |
93.21% |
96.04% |
Ошибки |
15.76% |
6.79% |
3.96% |
Средняя задержка |
1.50 ms |
1.42 ms |
43.77 ms |
Максимальная задержка |
15.28 ms |
2.03 s |
1.85 s |
Теперь разберем поведение каждого балансировщика подробнее.
BIG-IP F5
Ошибок получилось 15,8% (4725 из почти 30 тысяч запросов). Это заметно, но средняя задержка осталась низкой — 1,50 мс, максимальная — всего 15,28 мс.
BIG-IP F5 реагирует агрессивно: быстро выкидывает мёртвый сервер из пула, но в момент переключения часть запросов всё же уходит в никуда.
Termidesk Connect
Здесь картина лучше: ошибок 6,8% — почти в 2,5 раза меньше, чем у F5. Средняя задержка — 1,42 мс, максимальная — 2,03 секунды (но это именно на ошибочных запросах).
Самый сбалансированный результат: низкие задержки, минимум ошибок, никаких провалов.
Citrix NetScaler
Лучший процент успешных ответов — 96%, ошибок всего 4%. Но есть нюанс: средняя задержка — 43,77 мс. Правда, если смотреть только на успешные запросы, там всего 0,74 мс — как у остальных.
Проблема в том, что NetScaler медленнее исключает упавший сервер. Несколько запросов ещё успевают уйти на мёртвый узел и висят там до таймаута.
Результаты по реакции балансировщиков на падение backend-сервера
При падении одного backend-узла все три балансировщика продолжают держать нагрузку около 1000 RPS, но ведут себя по-разному в части ошибоки задержек. BIG-IP F5 быстрее отсекает проблемный узел, поэтому задержки остаются ровными, но в момент отказа получается больше ошибок. Termidesk Connect даёт более спокойную картину: задержки такие же низкие, а ошибок заметно меньше. NetScaler показывает минимальный процент ошибок, но часть запросов успевает попасть на уже недоступный сервер и дожидается таймаута — из-за этого растёт средняя задержка.
Подведем итоги
Тесты хорошо показывают одну простую мысль: балансировщики отличаются не только скоростью, но и характером поведения. Причем этот характер меняется в зависимости от сценария: в одном случае важнее выдержать поток, в другом — не раздувать задержки, в третьем — не сыпаться при неидеальной сети, а в четвёртом — просто быть предсказуемым и понятным в эксплуатации. И именно поэтому сводить сравнение к одной цифре обычно бессмысленно — в продуктивной среде никто не живёт в одном-единственном режиме.
Отдельный вывод — про HTTPS и TLS. Очень часто кажется, что достаточно включить шифрование, но именно на TLS начинают проявляться нюансы реализации, настройки и поведения под нагрузкой. Там же обычно находятся неожиданные причины периодических проблем: то рукопожатие внезапно становится дорогим, то соединения ведут себя не так, как ожидалось, то таймауты и ретраи начинают усиливать эффект от любой деградации.
Сценарии с ухудшенной сетью — вообще отдельный вид истины. Пока канал идеальный, большинство решений выглядят достойно. Но как только появляются задержки, потери и неровность, на поверхность всплывает то, что реально определяет пользовательский опыт: как быстро система восстанавливается, насколько мягко деградирует, как ведут себя health-check’и, и не превращается ли небольшой сетевой шум в лавину ошибок.
Подводя итог, могу сказать, что Termidesk Connect — молодой российский продукт — проявил себя как полноценный рабочий инструмент, вполне сопоставимый с BIG-IP F5 и Citrix NetScaler. Безусловно, на текущем этапе существуют определённые ограничения и «типовые грабли». Будем следить за тем, как вендор развивает и дорабатывает продукт. Задачу по объективному сравнению решений я считаю выполненной — картина, на мой взгляд, получилась полной. Дальнейший выбор зависит от конкретных условий: помимо функциональности продукта, важно учитывать планируемую нагрузку, особенности сети, модель эксплуатации и требования к технической поддержке.