[uanog] IPSec performance @ x86

Sergey Smitienko hunter at comsys.com.ua
Tue Feb 14 15:37:57 EET 2017


Была возможность - сделал тест.

3.16.0-4-amd64 #1 SMP Debian

Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz

Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ 
Network Connection (rev 01)

add x y esp 12044 -m tunnel -E aes-cbc "0123456789abcdef01234567" -A 
hmac-sha256 "0123456789abcdef0123456789abcdef";
add y x esp 12045 -m tunnel -E aes-cbc "0123456789abcdef01234567" -A 
hmac-sha256 "0123456789abcdef0123456789abcdef";
spdadd x y any -P in  ipsec esp/tunnel/x-y/require;
spdadd y x any -P out ipsec esp/tunnel/y-x/require;

Машины включены в один  ethernet без ipsec качают 10G (iperf3).

aes128-md5 - cpu load около 20%. aes128-sha256 - cpu load около 20%. 
aes256-sha256 - cpu load около 20%

Во всех случаях iperf3 разгонялся до примерно 1 - 1.2 гигабита в секунду 
и больше скорость не росла.
Запускал и в один и в несколько потоков.

Судя по
[49374.856185] sha256_ssse3: Using AVX2 optimized SHA-256 implementation
[49374.900019] sha512_ssse3: Using AVX2 optimized SHA-512 implementation
[49375.146132] alg: No test for authenc(hmac(md5),cbc(aes)) 
(authenc(hmac(md5-generic),cbc-aes-aesni)), ядро выбрало aes-ni драйвер 
шифрования для md5
и aes-ni/avx2 для sha256.

Выводы - где-то в ядре Linux есть блокировки и проблемы с оптимизацией, 
которые не позволяют качать быстрее, чем гигабит в секунду и загрузить cpu
на максимум.

Для сравнения, http://www.6wind.com/products/6windgate/ пишут про 12.5 
Gbps per core на x86, но у них свой userspace IP стек.

-- 
Sergey


More information about the uanog mailing list