Acabei de configurar um NAS com VPN com o meu Raspberry Pi Modelo B recém-adquirido e com overclock e encontrei algo que não consigo encontrar resposta para outro lugar.
A largura de banda da Internet, conforme determinado usando
wget --output-document = / dev / null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
é muito mais lento do que o que eu esperaria obter. Estou com 1,34 MBps no Pi pela Ethernet quando estou chegando a 7 MBps quando a Ethernet está conectada diretamente no meu laptop.
O problema está no OpenVPN, mas não consigo descobrir exatamente o que é. Aqui está como eu sei disso.
Comparei as taxas de download no Pi com a VPN desligada e ligada - era 5,03 MBPS vs 1,34 MBPS.
Então eu tentei no meu laptop (com fio) - era 6,9 MBPS (perfeito) vs 6,7 MBPS (quase perfeito).
Portanto, a falha não está totalmente no meu serviço VPN (PrivateInternetAccess), que oferece uma redução de 3% na largura de banda no meu laptop - mas tem a ver com a maneira como o OpenVPN é executado no Pi, com uma redução de 74% na largura de banda.
Alguma idéia de por que o OpenVPN no Raspbian está sendo tão terrível?
ATUALIZAÇÃO: A maior parte dessa redução de 6,9MBPS no laptop sem VPN para 5,03 MBPS no Pi sem VPN parece ser da velocidade de gravação do cartão SD, que eu determinei em torno de 4,9MBPS. É essa enorme redução de 5,03 MPBS no Pi sem VPN para 1,3 MBPS com VPN que precisa ser explicada.
ATUALIZAÇÃO 2: Mais algumas dicas das sugestões dos comentários: 1) O OpenVPN utiliza 70% da CPU quando está em execução e o wget está em segundo plano 2) No Pi, recebo 1,34 MBPS de um servidor VPN dos EUA e cerca de 500 600 KBPS de TODOS os servidores VPN europeus, MAS no meu laptop, recebo 6.7MBPS do servidor VPN dos EUA e 6.6MBPS muito semelhantes de alguns servidores europeus como o da Holanda. O que estou dizendo é que a distância do servidor parece afetar desproporcionalmente o Pi e não o meu laptop.
fonte
top
durante o teste, que deve dizer algo sobre a sobrecarga de criptografia.Respostas:
Em dispositivos de baixa potência, pelo menos ao usar o SSH, tive uma boa experiência usando a cifra RC4 para melhorar o desempenho, uma vez que é computacionalmente mais rápida, portanto, usa menos CPU para a largura de banda / permite maiores larguras de banda para o mesmo uso da CPU. Este guia explica como alterar a cifra para qualquer uma suportada pelo OpenSSL - como RC4:
http://openvpn.net/index.php/open-source/documentation/howto.html#security
Observe que o RC4 não é o algoritmo mais seguro disponível, mas o SSL ainda o utiliza de maneiras seguras (que existem, conforme descrito aqui: http://en.wikipedia.org/wiki/RC4 ). Atualização : isso é menos verdade agora do que no passado. A confiança na segurança do RC4 está reduzindo ainda mais, à medida que as técnicas para quebrá-lo avançam, e 2013 nos deu vários progressos na quebra do RC4 e especulações sobre o fato de a NSA ter conseguido . Citando a Wikipedia:
Então, ainda posso recomendar o RC4? Não é realmente em geral. É claro que você precisa trocar a segurança e o desempenho e talvez não precise de muita segurança - qualquer criptografia, mesmo o RC4, ainda atrasará os esforços de vigilância de arrastões como os da NSA. Mas eu seria muito cuidadoso com dados realmente confidenciais e mudaria o algoritmo para outra coisa, se possível (comecei a comparar meu Raspberry para procurar alternativas rápidas).
Atualização 2 : no meu Raspberry (com overclock), o AES não é tão lento, se você tiver CPU suficiente disponível. A tabela abaixo mostra que o RC4 pode criptografar ~ 57MB / s, enquanto o AES-128-CBC pode criptografar ~ 21.4MB / s. Obviamente, isso não explica por que você obtém um desempenho tão ruim - mas talvez você esteja usando por padrão um código mais lento, ou talvez haja alguma outra ineficiência que possa ser melhorada.
Configurações de overclock de
/boot/config.txt
:fonte