Aproximadamente quanto de um desempenho atingido o https levará em comparação com o http da mesma página? Suponha que eu possa lidar com 1000 solicitações / s para abc.php, quanto isso diminuirá quando acessado por https? Eu sei que isso pode depender de hardware, configuração, sistema operacional etc etc, mas estou apenas procurando uma regra geral / estimativa.
apache-2.2
performance
erotsppa
fonte
fonte
Respostas:
Para um teste rápido e sujo (ou seja, sem otimização alguma!), Ativei o site padrão Ubuntu apache2 simples (que apenas diz "Funciona!") Com http e https (certificado autoassinado) em uma VM local Ubuntu 9.04 e executei o apache referência "
ab
" com 10.000 solicitações (sem simultaneidade). Cliente e servidor estavam na mesma máquina / VM:Resultados para http ("
ab -n 10000 http://ubuntu904/index.html
")Resultados para https ("
ab -n 10000 https://ubuntu904/index.html
"):Se você der uma olhada mais de perto (por exemplo, com tcpdump ou wireshark) na comunicação tcp / ip de uma única solicitação, verá que o caso http requer 10 pacotes entre cliente e servidor, enquanto https requer 16: a latência é muito maior com https. (Mais sobre a importância da latência aqui )
A adição de keep-alive (
ab
opção-k
) ao teste melhora a situação, porque agora todas as solicitações compartilham a mesma conexão, ou seja, a sobrecarga do SSL é menor - mas https ainda é mensurável mais devagar:Resultados para http com keep-alive ("
ab -k -n 10000 http://ubuntu904/index.html
")Resultados para https com keep-alive ("
ab -k -n 10000 https://ubuntu904/index.html
"):Conclusão :
fonte
Em servidores modernos, eu diria que seu gargalo seria a rede e seu aplicativo, não a criptografia. O TLS / SSL no apache será escrito em C bastante otimizado, portanto será diminuído pelo seu código PHP, especialmente se você estiver fazendo coisas como acesso ao banco de dados. A veiculação de arquivos estáticos provavelmente terá um impacto maior, pois a criptografia se tornará uma parte maior de todo o processo. Não posso dar números concretos, mas ficaria surpreso se fosse mais de 5% e provavelmente mais perto de alguns por cento.
fonte
Não assuma nada, teste você mesmo! Em seus aplicativos da web específicos, é claro.
fonte
Acho que no hardware moderno, é mais provável que eu esteja vinculado à E / S para uma transação específica do que ao processador (computação). Isso é particularmente verdade quando se fala em compactação e criptografia. Atualmente, a criptografia de 128 bits é trivial - geralmente, sou muito mais afetado ao criar e entregar as páginas de saída do que ao SSL, e não noto uma diferença significativa no desempenho entre o tráfego http e https em alguns anos.
fonte
Eu segundo a recomendação para nginx. Nos meus próprios testes, ele se manteve bem como um descarregador SSL dedicado.
fonte
Obviamente, se o processamento do SSL for difícil, você sempre poderá movê-lo do servidor para uma caixa dedicada. Há uma boa descrição de como fazer isso com o nginx aqui . Isso é algo que fizemos em servidores com carga equilibrada da camada 7 altamente carregados.
fonte
Posso confirmar que a carga adicionada para criptografia é muito pequena em comparação com todos os outros elementos incluídos (scripts, rede, ...)
fonte
De acordo com minha experiência, a regra geral está diretamente relacionada ao tamanho da sua chave pública (por exemplo, 2048, vs 4096, vs 8192), e isso leva muito mais tempo. No entanto, mal consigo notar uma diferença em um ambiente de desktop, mas o celular é onde você vê a diferença, pois exige poder de computação.
Em geral, é lamentável, mas o SSL sempre e sempre terá uma enorme penalidade de desempenho.
fonte