Какую дополнительную нагрузку на процессор создает копирование данных по сети (защищенное и без криптозащиты)


Администрирование операционных систем на базе Linux (Debian/Ubuntu и Centos/RedHat) Сложные сетевые решения (VPN/Routing и т.п.) Мониторинг серверов и сетевой инфраструктуры при помощи Zabbix VPN-технологии для объединения офисов и обхода блокировок Резервное копирование и восстановление информации (Backup & Recovery)
openvpn данных копирование нагрузка процессор сервер сети
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 3 недели, 4 дня)

Я сейчас готовлю небольшой обзор на тему параноидальной защиты OpenVPN и решил поделиться с читателями моего блога результатами эксперимента который мы проводили в рамках тестирования дополнительной нагрузки создаваемой передачей данных внутри OpenVPN сети и при копировании средствами SCP. При резервном копировании большого объема данных у одного и заказчиков наблюдался основательный рост нагрузки на процессор и я решил проверить сколько в пике может создать дополнительной нагрузки на процессор передача данных в OpenVPN-туннеле, SCP-копирование и чистая передача данных.

Для тестирования пропускной способности сети используется утилита iperf, для ее установки выполните команду:

# aptitude install iperf

Эта утилита запускается в клиент-серверном режиме и на одном из компьютеров она будет слушать, а на втором отправлять данные. Для тестирования пропускной способности сети мне понадобится файл со случайными данными которые я и буду отправлять. Я использую данные полученные из /dev/urandom чтобы создать трафик максимально приближенный к оригиналу и минимизировать эффект от сжатия трафика и прочих систем оптимизации.

# dd if=/dev/urandom of=/urandom.dat bs=10M count=10000

Запускаем "слушатель" на одном из серверов:

# iperf -s

На втором сервере запускаем "Клиента" к первому, но указываем что отправлять мы собираемся данные из нашего файла заполненного случайными данными (/dev/urandom):

# iperf -t 120 -l 65536 -c 10.1.1.76 -F /urandom.dat

Замер пропускной способности тестовой среды показал, что примерно гигабит я и могу по ней "прокачать".

----------------------------------------------------------
Client connecting to 10.1.1.76, TCP port 50
TCP window size: 85.0 KByte (defaul
----------------------------------------------------------
[  4] local 10.1.1.73 port 48312 connected with 10.1.1.76 port 50
[ ID] Interval       Transfer     Bandwid
[  4]  0.0-89.1 sec  9.77 GBytes   941 Mbits/sec

Первый эксперимент который я хотел бы провести, это замеры нагрузки при передачи данных по сети в штатном режиме, то что я и делал выше. Тестовая среда у меня Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz и сетевая карта интегрированная Corporation Ethernet Connection (2) I219-V.

Как обработка передачи данных по сети нагружает процессор?

Это первое базовое измерение и в этом случае у нас никакой криптографии, только банальная передача трафика. 

Сразу могу сказать, что Intel i5 такая операция практически не загрузила.

Какая дополнительная нагрузка создается при копировании утилитой scp?

Утилита csp использует механизмы Secure Shell (SSH) и соответственно Secure File Copy (SCP) использует шифрование которое должно нагрузить процессор. Теоретически понятно, что будет создана избыточная нагрузка, но вопрос в том какая?

И как вы наверное заметили, нагрузка значительно возросла по сравнению с первым замером. 

Для копирования я использовал команду:

# scp /urandom.dat root@10.1.1.76:/

Я хотел бы обратить ваше внимание, что львиная доля, это iowait который в первом случае у нас отсутствовал, так как отсутствовала сама операция записи переданных данных, но User Time и System Time значительно возросли и как мы видим SCP достаточно ресурсоемкая операция.

Как OpenVPN нагружает систему?

А вот теперь самое интересное, ради чего мы все это и затевали, мне необходимо понять какую избыточную нагрузку на сервер создаст OpenVPN тунель. Для проведения этого теста, я внутри нашей гигабитной сети подниму OpenVPN туннель и проведу первый тест.

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

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 172.16.8.1 port 5001 connected with 172.16.8.6 port 56716
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-120.0 sec  6.03 GBytes   432 Mbits/sec

Нагрузка на процессор выше чем при Secure File Copy (SCP) и это при условии, что дискового iowait-а у нас практически нет.

Финальный тест. Защищенное копирование средствами SCP внутри OpenVPN-туннеля!

Этот тест проводится просто так, что называется Just For Fun. 

Результат вполне ожидаемый.

Как вы наверное поняли, излишние крипто-алгоритмы основательно нагружают систему и использовать их имеет смысл только там где они реально нужны.

Моя официальная страница на FaceBook
Мой микроблог в твиттер

OpenVPN-сеть для LXD-кластера без назначения адресов клиентов (использование стороннего DHCP для управления клиентами VPN-сети)

OpenVPN-сеть для LXD-кластера без назначения адресов клиентов (использование стороннего DHCP для управления клиентами VPN-сети)

Представляю вашему вниманию небольшой экскурс в активно используемую мной технологию построения распределенных виртуальных сетей на базе OpenVPN в немного непривычной реализации. Если вы работаете с OpenVPN технологиями, то наверное обратили внимание что практически все руководства описывают OpenVPN сеть где OpenVPN-сервер выступет в качестве DHCP-сервера и назначает адреса для своих клиентов, но я сегодня хотел бы предложить вам уйти от типовых реализаций.


Разработка собственного модуля авторизации для OpenVPN

Разработка собственного модуля авторизации для OpenVPN

Как вы наверное знаете помимо стандартной авторизации по ключам и сертификатам вы можете дополнительно использовать парольную защиту как дополняющий механизм к модели сертификатов или полностью перейти исключительно на парольную авторизацию. Стоит отметить, что защищенность OpenVPN с авторизацией с использованием Login/Password будет гораздо выше чем использование механизмов PPTP например.


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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .