Перейти к основному содержимому

Снимок бенчмарков

Ручной снимок, замеренный на Apple M4 Pro с Go 1.26.

Пропускная способность
~4,3 Gbit/s
Лучший full-cycle path
Задержка
~2,6 μs
Минимальный full-cycle path
Поиск fast-path
~3,9 ns - ~15,0 ns
Плоско от 1 до 10 000
Allocs/op
0
Критический путь

Полный dataplane-цикл

Шифрование, lookup, валидация, дешифрование, handoff. Верхняя граница для ядра dataplane, а не сквозной пропускной способности VPN.

ПутьЗадержкаПропускная способностьAllocs/op
UDPКлиент -> Сервер~2,7 μs~4,3 Gbit/s0
UDPСервер -> Клиент~2,6 μs~4,3 Gbit/s0
TCPКлиент -> Сервер~2,6 μs~4,3 Gbit/s0
TCPСервер -> Клиент~2,6 μs~4,3 Gbit/s0

Масштабирование UDP по peer

Агрегированная пропускная способность при распределении работы между множеством peer, а не по одной сериализованной send-линии.

UDP Клиент -> Сервер

Агрегированная пропускная способность
Пиры 1~3,4 Gbit/s
Пиры 64~34,6 Gbit/s
Пиры 1 024~34,2 Gbit/s

UDP Сервер -> Клиент

Агрегированная пропускная способность
Пиры 1~3,4 Gbit/s
Пиры 64~32,5 Gbit/s
Пиры 1 024~31,9 Gbit/s

Lookup и сериализация

Lookup по Internal IP, allowed-host и route-ID остаются плоскими. Misses и сериализация на peer — основные точки давления.

ПоискПиры
11001 00010 000
Точный lookup по internal IP~8,7 ns~9,0 ns~9,3 ns~9,3 ns
Lookup по allowed-host~13,5 ns~15,0 ns~13,4 ns~14,1 ns
Lookup по route-ID~3,9 ns~6,4 ns~6,0 ns~6,6 ns
Путь промаха~35,4 ns~699 ns~9,0 μs~89,5 μs
Egress-линия
~4,7 ns -> ~80,2 ns
От отправки без конкуренции к отправке с конкуренцией
Путь промаха
Линейно
~35,4 ns на 1 -> ~89,5 μs на 10 000