Я только что закончил настройку VPN-хранилища на базе VPN с моей недавно разогнанной Raspberry Pi Model-B и столкнулся с чем-то, для чего не могу найти ответ в другом месте.
Пропускная способность интернета, определенная с использованием
wget --output-document = / dev / null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
намного медленнее, чем я ожидал получить. Я получаю около 1,34 МБ / с на моем Pi через Ethernet, когда я приближаюсь к 7 МБ / с, когда Ethernet подключен непосредственно к моему ноутбуку.
Проблема в OpenVPN, но я не могу понять, что именно. Вот как я это знаю.
Я сравнил скорость загрузки на Pi с выключенным и включенным VPN - это было 5,03 МБ / с против 1,34 МБ / с.
Затем я попробовал его на своем ноутбуке (проводной) - он был 6,9 МБ / с (идеальный) против 6,7 МБ / с (почти идеальный).
Таким образом, ошибка не полностью связана с моей VPN-службой (PrivateInternetAccess), которая дает 3% -ное снижение пропускной способности на моем ноутбуке, но связана с тем, как OpenVPN работает на Pi, что дает 74% -ное снижение пропускной способности.
Есть идеи, почему OpenVPN на Raspbian так ужасен?
ОБНОВЛЕНИЕ: Большая часть этого сокращения с 6,9 МБ / с на ноутбуке без VPN до 5,03 МБ / с на Pi без VPN, по-видимому, связана со скоростью записи на SD-карту, которую я определил около 4,9 МБ / с. Это огромное сокращение с 5,03 MPBS на Pi без VPN до 1,3 Мбит / с с VPN, которое необходимо объяснить.
ОБНОВЛЕНИЕ 2: Еще несколько подсказок из предложений из комментариев: 1) OpenVPN использует 70% ЦП, когда он работает, а wget находится в фоновом режиме. 2) На Pi я получаю 1,34 МБ / с от VPN-сервера в США и около 500- 600 Кбит / с со всех европейских VPN-серверов, НО на моем ноутбуке я получаю 6,7 МБ / с от американского VPN-сервера и очень похожие 6,6 МБ / с от некоторых европейских серверов, таких как один в Нидерландах. Я говорю о том, что расстояние до сервера, по-видимому, непропорционально влияет на Pi, а не на мой ноутбук.
источник
top
во время тестирования, это должно сказать что-то о накладных расходах шифрования.Ответы:
На устройствах с низким энергопотреблением, по крайней мере, при использовании SSH, у меня был хороший опыт использования шифра RC4 для повышения производительности, поскольку он быстрее в вычислительном отношении, поэтому использует меньше ЦП для полосы пропускания / допускает более высокую пропускную способность при той же загрузке ЦП. В этом руководстве объясняется, как заменить шифр на любой, поддерживаемый OpenSSL, например RC4:
http://openvpn.net/index.php/open-source/documentation/howto.html#security
Обратите внимание, что RC4 не является самым безопасным доступным алгоритмом, но SSL все еще использует его безопасными способами (которые существуют, как описано здесь: http://en.wikipedia.org/wiki/RC4 ). Обновление : сейчас это менее верно, чем в прошлом. Доверие к безопасности RC4 снижается еще больше, так как методы его взлома развиваются , и 2013 год дал нам различный прогресс в разрушении RC4 и спекуляциях о том, что АНБ справилось . Цитируя Википедию:
Итак, могу ли я по-прежнему рекомендовать RC4? Не совсем в общем. Конечно, вам нужно поменять безопасность и производительность, и, может быть, вам не нужно много безопасности - любая криптография, даже RC4, все равно замедлит усилия по наблюдению, такие как от NSA. Но я был бы очень осторожен с действительно конфиденциальными данными и, если возможно, изменил бы алгоритм на что-то другое (я начал тестировать свою Raspberry, чтобы искать быстрые альтернативы).
Обновление 2 : на моей (разогнанной) Raspberry AES работает не так медленно, если у вас достаточно процессорного времени. Таблица ниже показывает, что RC4 может шифровать ~ 57 МБ / с, в то время как AES-128-CBC может шифровать ~ 21,4 МБ / с. Конечно, это не объясняет, почему вы получаете такую плохую производительность - но, возможно, вы используете по умолчанию более медленный шифр, или, может быть, есть и другая неэффективность, которую можно улучшить.
Настройки разгона от
/boot/config.txt
:источник