Как правильно измерять производительность ГОСТ без самообмана¶
Методика измерения криптографических операций в ядре, OpenSSL и на дисковых томах.
Документация ПО — НАЙС.ОС CLOUD. Это самостоятельная учебно-справочная статья. Команды приведены для изучения и диагностики; операции с ключами, дисками и действующими сервисами выполняют только после резервного копирования и проверки назначения.
Сначала определите, что измеряется¶
Производительность отдельного блока «Кузнечика», потока CBC, XTS-тома, TLS-соединения и реального VPN-шлюза — совершенно разные показатели. Нельзя сравнивать их как одно число «скорость ГОСТ». В первом случае учитываются вычисления и память, во втором — системные вызовы и интерфейсы, в третьем — файловая система и диск, в четвёртом — протокол и сеть.
Слои тестирования¶
| Тест | Главная метрика | Обязательные условия |
|---|---|---|
| OpenSSL EVP | МБ/с, задержка блока | Точная версия Provider и алгоритм/режим |
| AF_ALG | Операций/с, МБ/с | Размер блока, batch и стоимость вызова ядра |
| LUKS2 XTS | Реальный I/O, задержка | Накопитель, очередь, FS, direct/buffered I/O |
| IPsec ESP | Полезная пропускная способность | Размер пакета, MTU, rekey и потери |
| TLS 1.3 | Рукопожатие и пропускная способность | Сессии, сертификаты, группа и cipher suite |
Почему результаты легко исказить¶
Данные могут оставаться в файловом кэше, виртуальный накопитель может иметь другой реальный backend, а производительность VM зависит от конкурирующих нагрузок. Подробно записывайте uname -r, модель CPU, количество потоков, размер операций, расположение диска, реализацию алгоритма и длительность каждого прогона. Прогревайте систему и собирайте несколько прогонов — одиночное число редко репрезентативно.
Встроенный ГОСТ и новая сборка ядра¶
После перехода с внешних .ko на встроенные алгоритмы сравнивайте одинаковые режимы и одинаковую нагрузку. Изменение механизма компоновки не гарантирует ускорения или замедления: на результат влияют компилятор, CPU, реализация таблиц, стоимость копирования и особенности маршрута данных.
Проверка без опасных команд¶
Для первичной инвентаризации достаточно uname -r, lscpu, openssl version -a и чтения /proc/crypto. Нагрузочные тесты проводить только на изолированной VM или свободном ресурсе. Не запускайте интенсивные тесты на рабочем VPN-шлюзе, если он обслуживает реальных пользователей.
Итоговый протокол должен содержать не только среднюю скорость, но и разброс, наблюдаемые ошибки, ограничения и ссылки на использованные команды.