Итак, я создал простой файл ab.htm, содержащий только «test».

ab -n 1000 -c 10 http://www.domain.com/ab.htm

дает мне 15400 запросов / сек

а также

ab -n 1000 -c 10 https://www.domain.com/ab.htm

дает мне 390 запросов / сек

Если я добавлю флаг -k Keep-Alive, он вернется к ~ 10 000. Но это не решение, если у меня будет 1000 одновременных пользователей, они не все будут использовать одно и то же соединение ...

Это на 4 ГБ Centos 6 VPS, nginx 1.5.6.

Я также пробовал его при одновременном использовании 1, 100 и 1000 и получил аналогичные результаты.

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

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

Спасибо


Дополнительная информация:

  • CentOS 6.4
  • Процессор Intel E5-2640
  • Xen VPS (я думаю, на сервере HP DL380p Gen8 Proliant)
  • Оперативная память 4 ГБ

Версии и т. Д.:

uname -a

Linux 2.6.32-358.18.1.el6.x86_64 # 1 SMP среда, 28 августа, 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

openssl version

OpenSSL 1.0.1e 11 февраля 2013 г.

nginx -V

Версия nginx: nginx / 1.5.6, созданный gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) Поддержка TLS SNI включает аргументы конфигурации: --prefix = / etc / nginx --sbin-path = / usr / sbin / nginx --conf-path = / etc / nginx / nginx.conf --error-log-path = / var / log / nginx / error.log --pid-path = / var / run / nginx.pid --http-log-path = / var / log / nginx / access.log --lock-path = / var / run / nginx.lock --http-client-body-temp-path = / var / cache / nginx / client_temp --http-proxy-temp-path = / var / cache / nginx / proxy_temp --http-fastcgi-temp-path = / var / cache / nginx / fastcgi_temp --http-scgi-temp-path = / var / cache / nginx / scgi_temp --http-uwsgi-temp-path = / var / cache / nginx / uwsgi_temp --user = nginx - группа = nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module - http_module_static_module - http_module with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module--with-http_spdy_module--with-http_spdy_module

answer

следует ожидать значительного замедления, но 300 об / с - это слишком медленно; Недавно я провел несколько тестов, и это мои результаты, чтобы дать вам некоторые числа и отношения:

  • http: ~ 30.000 об / с
  • https без поддержки активности: ~ 9.000 оборотов в секунду
  • https с поддержкой активности: ~ 18 000 об / с

что вам нужно делать:

  • настроить правильное количество рабочих в nginx.conf (workes == количество процессоров)
  • включить общий доступ к ssl_session_cache
  • протестировать разные шифрокиты на производительность (tbd с моего сайта)
  • ознакомьтесь с этим руководством, чтобы узнать больше о ssl + perf-tuning-infos на основе nginx

390 / rps я ожидал от apache ... SCNR :)