Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как противостоять манипуляциям мужчин? Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?







ПривязкапроцессовOpenVPN к процессору



Очевидно, чтоимеютсянекоторыенакладныерасходы, предотвращающееполнуюнагрузкупроцессоров. Предположительноэтозатраты на переключениеконтекстапроцессов и ихперемещениемеждуразнымипроцессорами.

Серверы тестового стенда имеютархитектуру NUMA (Non-Uniform Memory Access). Для жёсткойпривязкипроцессов к ядрам и какследствие к т.н. нодамиспользуетсяутилита numactl. Можноуказать, чтоопределённыепроцессыдолжнызапускаться на конкретномядре:

# numactl --physcpubind=1 openvpn ... --port 5001

# numactl --physcpubind=2 openvpn ... --port 5002

# numactl --physcpubind=3 openvpn ... --port 5003

Послеэтого, ситуация с производительностьюзаметноулучшилась:

Скорость TCP, Mbps Задержка, ms Нагрузка CPU, %
0.150-0.180

Такаязавышеннаяскорость, в сравнение с вариантом без шифрованиявообще, получается за счётприменениясжатиятрафика. В реальностиэтозначениеможетбытькакменьше, так и существеннобольше. Этобудетзависеть от передаваемыхданных.

Запуск производился с настройками максимальнойпроизводительности, то есть с отключённойаутентификациейпакетов. Послевключенияполучаютсяследующиерезультаты:

Скорость TCP, Mbps Задержка, ms Нагрузка CPU, %
0.150-0.180

Такжеможно установить размерыключейшифрованияравными 256-бит (AES-256-CBC), чтообеспечиваетгораздоболеевысокуюкриптостойкость и весьманезначительноепонижениепропускнойспособности:

Скорость TCP, Mbps Задержка, ms Нагрузка CPU, %
0.150-0.180

Зачастую, в реальностиполноепиковоеиспользованиеканала далеко не всегдапроисходит. Былопроизведеноизмерениепроизводительностивсего с двумяOpenVPN-туннелями, но с привязкой к процессору:

Скорость TCP, Mbps Задержка, ms Нагрузка CPU, %
0.150-0.180

Выводы

Имеясовременныймногоядерныйпроцессор, можнонебольшимитрудозатратамидобитьсяпрозрачногокриптостойкогошифрованиятрафика канального уровня (напримермеждуподразделениямиорганизации, связаннойвыделенным каналом связи). Стоимость такого решениябудетсущественнонижеспециализированныхаппаратныхшифраторов.

Распараллеливаниенагрузкипроизводится за счётраспределенияEthernet-фреймов, поступающих с физическогосетевогоинтерфейса на виртуальныйbonding-интерфейс, объединяющий TAP-устройстваформируемыепроцессамиOpenVPN.

Если в процессореестьвозможностьвыполнения таких алгоритмов/функцийкак AES и SHA1, то можносущественноувеличитьпропускнуюспособностьшифрованногоканала. Эмпирическибылозамечено, чтооколополовинывсехвычислительныхресурсовзатрачивается на процесссжатияданных.

Режим работы Скорость TCP, Mbps Задержка, мс Нагрузка CPU, %
Без шифрования 0.036 1-2
1xOpenVPN 0.150-0.180 70-80
1xOpenVPN+AES-128 0.150-0.180 70-80
1xOpenVPN+AES-128+LZO 0.150-0.180 70-80
1xOpenVPN+AES-128+LZO+без аутентификации 0.150-0.180 70-80
3xOpenVPN+AES-128+LZO+без аутентификации 0.150-0.180 70-90
3xOpenVPN+AES-128+LZO+без аутентификации+привязка 0.150-0.180
3xOpenVPN+AES-128+LZO+привязка 0.150-0.180
3xOpenVPN+AES-256+LZO+привязка 0.150-0.180
2xOpenVPN+AES-256+LZO+привязка 0.150-0.180

§ СергейМатвеев (руководительотделаисследования и разработки<sergey.matveev@etegro.com>)

Отдельноеспасибо за помощь в написаниистатьи:

§ АндреюСапронову (технический директор <andrey.sapronov@etegro.com>)

 








Date: 2015-07-27; view: 296; Нарушение авторских прав

mydocx.ru - 2015-2017 year. (0.006 sec.)