На параметры производительности системы WNAM, которые выражаются в пиковом числе запросов авторизации в секунду, которые она может обработать, влияют следующие факторы:
- Производительность сервера, в первую очередь число ядер CPU, их частота, поколение процессора и поддерживаемые им инструкции
- В случае применения среды виртуализации: загруженность самого хоста, и вызванная этим конкуренция виртуальных машин за ресурсы
- Производительность дисковой подсистемы (HDD SATA, HDD SAS, SSD, NVMe и .т.п) сервера
- Тип используемой СУБД (MongoDB, PostgreSQL)
- Наличие кластерной конфигурации
- Количество правил аутентификации, авторизации, число серверов доступа, площадок
- Текущее число эндпоинтов
- Применяемый метод авторизации (PAP, PEAP, EAP-TLS)
- Интервал получения сообщений RADIUS Accounting Interim
Как видно, на производительность системы влияет множество факторов, поэтому указать общие абстрактные значения без привязки к конкретной реализации, не представляется возможным.
Работа администратора системы в веб-интерфейсе, при условии, что он не запускает формирование сложных и массивных отчетов, нагрузки на сервер не создает. Не создают её и рутинные операции по обслуживанию сервера (чистка лог-файлов, обновления и т.п.).
Из общих соображений можно рекомендовать применение более современных процессоров, дисковых носителей SSD/NVMe для базы данных, носителей SSD/HDD SAS для лог-файлов, оптимизацию числа правил аутентификации и авторизации.
Анализ поддерживаемых методов авторизации показывает, что каждый из них требует различного вовлечения ресурсов сервера, а именно:
- Для РАР авторизации процесс занимает один RADIUS-фрейм, в ходе обработки которого происходит однократный разбор атрибутов, поиски в базе данных (правила, эндпоинты), запись в БД лога соединения (порядка 20 строк на объект). Криптография не используется.
- Для EAP-TLS авторизации процесс занимает порядка десяти RADIUS-фреймов (в каждом направлении), в ходе обработки каждого из которых происходит разбор атрибутов, поиски в базе данных (правила, эндпоинты), запись в БД лога соединения (порядка 50 строк на объект), а также криптографические операции проверки сертификата клиента с возможных синхронным или асинхронным запросом статуса его отозванности (возможно, с применением кэширования). Общее число фреймов зависит от длины цепочки доверия (сертификата сервера), размера ключа, дополнительных атрибутов сертификата.
- Для PEAP авторизации процесс занимает порядка пятнадцати RADIUS-фреймов (в каждом направлении), в ходе обработки каждого из которых происходит разбор атрибутов, поиски в базе данных (правила, эндпоинты), запись в БД лога соединения (порядка 70 строк на объект), криптографические операции, проверка хэша пароля пользователя локально либо с синхронным запросом внешней службы каталога через ADCTool (возможно, с применением кэширования).
Мы оцениваем соотношение среднего времени выполнения операций авторизации для этих трех сценариев как 1:10:15, соответственно пиковые показатели производительности должны иметь обратную пропорцию.
Для оценки предельных значений производительности, которые вы можете ожидать от вашего сервера с вашими настройками мы рекомендуем применять набор инструментов, которые позволяют создать синтетическую (но приближенную к реальной) нагрузку на ваш сервер WNAM, с заданным показателем операций авторизации/секунда, заданным методом авторизации. Инструмент тестирования отобразит вам показатели производительности в терминах загрузки сервера, средней и пиковой длительности авторизации, и проценте отказа в авторизации. Порогом для сервера можно считать те предельные значения нагрузки, когда процент отказов (вследствие перегрузки сервера) будет не выше 1%, а длительность авторизации менее 0.5 сек для РАР, и 3 секунд для EAP-методов.
Тестирование необходимо проводить на полностью настроенной системе WNAM (собран кластер, подключены удостоверяющий центр, если серверные сертификаты, настроена связь со службами каталога, настроены правила аутентификации, авторизации, сервера доступа и площадки). В качестве тестирующего сервера необходим отдельный сервер (виртуальная машина), работающая физически на другом хосте. тестирующий сервер должен иметь:
- Утилиту eapoltest
- Утилиту radclient
- Интерпретатор Python 3
- Загруженные сертификаты УЦ WNAM, и сертификаты для EAP-TLS авторизации
- Утилиту wnam_stress_test.py , полученную у нашей службы технической поддержки
Вам необходимо модифицировать утилиту wnam_stress_test.py так, чтобы она ссылалась на ваш сервер WNAM с указанием требуемых параметров запроса.
Проведите одиночный запуск в разных режимах, чтобы убедиться в корректном срабатывании заданных правил на стороне WNAM.
Последовательно запустите утилиту с возрастающими показателями нагрузки в авторизациях в секунду, с длительностью каждого теста не менее 5 минут для выравнивания нагрузки на сервер, например:
./wnam_stress_test.py -p tls -a 10.241.200.132 -r 10 -t 300 -s secret
./wnam_stress_test.py -p tls -a 10.241.200.132 -r 20 -t 300 -s secret
./wnam_stress_test.py -p tls -a 10.241.200.132 -r 30 -t 300 -s secret
./wnam_stress_test.py -p peap -a 10.241.200.132 -r 10 -t 300 -s secret
./wnam_stress_test.py -p peap -a 10.241.200.132 -r 20 -t 300 -s secret
./wnam_stress_test.py -p peap -a 10.241.200.132 -r 30 -t 300 -s secret
Найдите предельные приемлемые показатели работы для каждого из типов теста.