Performance: lentidão do Nginx SSL ou apenas lentidão do SSL em geral?

1

Eu tenho uma configuração do Amazon Web Services com uma instância do Apache por trás do Nginx com o Nginx manipulando SSL e servindo tudo, exceto as páginas .php. Nos meus testes do ApacheBench, estou vendo isso para minha chamada de API mais cara (qual cache via Memcached):

100 concurrent calls to API call (http): 115ms (median) 260ms (max)
100 concurrent calls to API call (https): 6.1s (median) 11.9s (max)

Fiz um pouco de pesquisa, desativei as criptografias SSL mais caras e habilitei o cache SSL (sei que isso não ajuda nesse teste em particular). Você pode me dizer por que meu SSL está demorando tanto? Eu configurei um servidor EC2 massivo com 8CPUs e até mesmo aplicando carga consistente a ele, apenas o aumento em até 50% da CPU total. Eu tenho 8 trabalhadores Nginx e um monte de Apache. Atualmente, toda essa configuração está em uma caixa do EC2, mas planejo dividi-la e carregá-la. Houve algumas perguntas sobre este tópico, mas nenhuma dessas respostas (desabilitar criptografias caras, cache ssl, parece fazer qualquer coisa.) Exemplos de resultados abaixo:

$ ab -k -n 100 -c 100 https://URL 
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking URL.com (be patient).....done


Server Software:        nginx/1.0.15
Server Hostname:        URL.com
Server Port:            443
SSL/TLS Protocol:       TLSv1/SSLv3,AES256-SHA,2048,256

Document Path:          /PATH
Document Length:        73142 bytes

Concurrency Level:      100
Time taken for tests:   12.204 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Keep-Alive requests:    0
Total transferred:      7351097 bytes
HTML transferred:       7314200 bytes
Requests per second:    8.19 [#/sec] (mean)
Time per request:       12203.589 [ms] (mean)
Time per request:       122.036 [ms] (mean, across all concurrent requests)
Transfer rate:          588.25 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       65  168  64.1    162     268
Processing:   385 6096 3438.6   6199   11928
Waiting:      379 6091 3438.5   6194   11923
Total:        449 6264 3476.4   6323   12196

Percentage of the requests served within a certain time (ms)
  50%   6323
  66%   8244
  75%   9321
  80%   9919
  90%  11119
  95%  11720
  98%  12076
  99%  12196
 100%  12196 (longest request)
    
por Mauvis Ledford 21.09.2012 / 23:19

1 resposta

0

a questão acabou sendo que eu tinha definido a limitação da taxa de Nginx no início e isso estava afetando meus testes de carga. Tolo eu sei. Uma coisa interessante durante a limitação de taxa é que o Nginx não obtém imediatamente 503 erros além do limite de burst, mas atrasa as respostas. Somente quando houver muitos pedidos na fila, ele enviará 503.

    
por 22.11.2012 / 23:50

Tags