Nginx и Апач против - существуют ли реальных сравнений использования и статистики там?

У меня есть новый сервер, чтобы играть с, и я глядя на пустой холст. Я могу положить все, что я хочу на нем. Пока мне комфортно с Apache, я постоянно слышу, как nginx может обрабатывать гораздо больше трафика, чем Апач, на коэффициент 10, 100, даже больше. Мало того, что она'ы "и гораздо быстрее.&и"

Когда я ищу статьи, я могу найти много вещей не имеющих отношения к Друпалу. Или, когда я наткнулся на Друпал обзоры статьи это'С либо 1) кто-то'ы конфигурационный файл с краткое объяснение, как его настроить, или 2) он'ы кто-то говорил "нет, Дон'т использовать nginx, перейти с Apache с PHP fcgid" но есть не объяснение, как, почему.

Так что, когда дело доходит до Друпала, что такое реальность?

В качестве примера, я ищу что-то вдоль линий этот 2bits.com статьи. Здесь Автор предпринял довольно обширный взгляд на Apache с mod_php, который против Апача с fcgid, взвешивая плюсы и минусы каждого, и представили социологическое исследование, чтобы проиллюстрировать влияние в реальном мире. Есть достаточно информации в этой статье для меня, чтобы принять обоснованное решение о том, какой подход будет лучше для моей ситуации.

А что автор сравнивает mod_php на fcgid, я ищу одного типа комплексных, реальный мир посмотрите на Апач против nginx'а.

Кто-нибудь перешел на nginx и был на "сдувается" и на разницу, по сравнению с Апачем? Даже для высоко оптимизированной средах, которые уже используют компании APC, memcache и агрессивное кэширование, как лак, когда единственная переменная, что меняется-это замена Апач с nginx, делает достаточно разницы само по себе заслуживает инвестирование в этой новой, альтернативной технологии?

Сайт, который пойдет на этот сервер получает авг в 2 миллиона просмотров в месяц. Светильник стек работает цент ОС 6. 4 ядерный процессор с 8 гигабайтами оперативной памяти. Memcached и APC будет быть частью смеси. Ничего особенного в Друпал установить - в основном ваниль 7 около 50 модулей.

Комментарии к вопросу (1)
Решение

Строго говоря, это не'т отвечать на вопрос, который вы задаете. Я'м надеясь, что это's в любом случае полезно.

Апач/с nginx/документации/другие веб-сервера. Не важно, что я выберу? Короче, нет.

Гораздо дольше ответа:

If, и только if, у вас есть очень большой процент пользователей в систему, если вы заботитесь вообще о производительности вашего веб-сервера. Если пользователи являются анонимными, никакой разницы, что вы теоретически можете получить от оптимизации в том, что слои абсолютной меркнет по сравнению с делая ваши ресурсы лучше кэшируется. Если ваши CSS-файлы имеют правильные заголовки кэша на них, УА выиграл'т даже попросить их второй раз. Это важно. Если вы можете кэшировать страницы в лак или аналогичное программное решение, в то время, что страницы в том, чтобы хэш-поиска, а затем вернуть большую часть данных непосредственно из оперативной памяти. Это важно. В обоих этих случаях демон HTTP-это даже не участвует, PHP не вызывается. Друпал не бутстрап. Не большой набор модулей должен быть загружен в оперативную память, не требует времени на запросы к базе данных выполняются.

При выполнении полной загрузки страницы, от холода кэша, для пользователя, вошедшего в систему, на сложную страницу; а lot всего происходит. Да, веб-сервер, занимающихся входящий запрос, установить некоторые заголовки и передает ответ обратно. Но время уходит, даже не актуальны в контексте Друпал работает полный Bootstrap и выводить свой ответ. Там может быть сотни запросов к базе данных выполняется. Очень сложная логика в PHP обрабатывается парсером. Много модули загружаются в оперативную память. Повышение эффективности деятельности любой из этих вещей, намного более вероятно, чтобы сделать серьезный вклад в производительность.

Ради аргумента: пусть'ы сказать, что вы потратили много времени на оптимизацию производительности все остальное.

  1. Вы запустите БТР (или оптимизатор+) и самой последней и самой быстрой версии PHP.
  2. ДБ-запросов мало.
  3. PHP-логикой была сокращена.
  4. Вы кэш, что можно в лак.
  5. У вас есть ре-структурировать весь ваш сайт, так что вы можете кэшировать большое клиентской стороне, и делать много тяжелой работы в функции.

Если у вас много зарегистрированных пользователей, и вы'вэ рассмотрены все из вышеперечисленных, то вы можете, вероятно, сделать разницу, но настройка производительности, или замены вашего веб-сервера. Впрочем, к чему гадать. Ваш сайт настолько сложная и модели использования ваших конкретных пользователей, это unique. Нет универсального ответа. Вам понадобится для установки все различных веб-серверов за балансировщиком нагрузки, и посмотреть, как они ведут себя под your scenario.

Выше была попытка логически прийти к выводу, что расходы за время выполнения оптимизации веб-сервер, вероятно, плохое использование времени. Я хотел бы, чтобы в выше хоть кого-то долбить, я бы, наверное, узнать что-то новое от него. :)

Некоторые другие заметки:

  1. Во время DrupalCon Копенгаген лейтмотивом, создатель PHP Расмус Лердорф, использование nginx сам, рассуждая на тему Друпал представлением, говорят: "Люди всегда спрашивают меня о веб-серверах ... это действительно не'т имеет значения, веб-сервер практически не важно, что". (Примерно на 26:30 в видео)
  2. Facebook провел бесчисленное множество часов на написание хип-хоп, базы кода значительно больше, чем сам Друпал, для ускорения PHP-код на А "жалкие" в 100%. Я осмотрел хип-хоп с $ туалетом -л $(найти . -тип F | команда grep -v с " у^\.мерзавец" и | команда grep -v с " и\^.я hphp/third_party&;) | сортировать -НР | глава -Н1 и обнаружил, что он состоит из 1.512.481 строк кода. Что'ы совершенно безумное количество работы, чтобы улучшить скорость работы PHP. Я'м предполагаю, что's, потому что скорость имеет значение в PHP значительно к ним.
  3. Я уже говорил, что хорошее кэширование будет иметь гораздо больший эффект, что тюнинг веб-сервера?
  4. С выходом в Apache 2.4, [Джим Ягельский в основном утверждает, что Apache 2.4 работает быстрее, чем серверы на основе событий][9].
  5. Ходил я туда производительность Drupal и масштабируемость с командой мечты, где пришел только этот вопрос. Все ответы о том, что выбрать, не имеет никакого отношения к производительности. Вещи, как и"Что вы уже знаете как настроить и", и "который позволит вам создавать технологии простой стек и", одной из упомянутых причин, чтобы выбрать по сравнению с другими. Я не войти в картину.

[9]: http://people.apache.org/~Джим/presos/ACNA11/Apache_httpd_cloud.формат PDF

Комментарии (5)

Ок, хотя на этот вопрос уже ответили, Я'м некромантии раз больше, прежде всего потому, что я Дон'т, как последствия этих ответов, что это не'т-либо изменить, и потому, как веб-разработчик, я ненавижу кэширование со страстью.

Разница между Apache и nginx-это не столько "Как быстро они смогут обслужить запрос" но как много запросов они могут выступать на такое же количество оборудования (особенно в условиях ограниченности ресурсов), которая представляет собой несколько разные вещи.

Apache-это процесс на сервере. Смысл его порождает процесс для каждого запроса. Nginx-это событие сервера, а это означает, это использует (асинхронный) событие-цикл, а не процессы или потоки.

И пока процесс-сервер (например, Apache) можете проанализировать более или менее наравне с асинхронного события на сервере (например, nginx), который при небольших нагрузках, при тяжелых нагрузках, как например, 10'0000 одновременных запросов, nginx использует всего несколько мегабайт оперативной памяти, в то время как Апач требует несколько сотен мегабайт на веб-сервере в одиночку (не включая веб-приложения, который должен гораздо больше ресурсов itselfs), если он может сделать это на всех.

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

Более значительно, большее потребление оперативной памяти означает, что Apache может обслуживать меньше запросов на том же оборудовании, чем nginx, что означает, что Апач требует больше оборудования за тот же количество пользователей, что означает, что у вас есть высшее TCO (совокупная стоимость владения), чем с Apache с nginx, который снижает ваш ROI (возврат на инвестиции).

Общий объем памяти, используемый х одновременных подключений (чем меньше тем лучше)

Запросы, которые могут быть поданы в секунду при Х одновременных подключений на 1 комплект оборудования (больше-лучше)

Источник: ApacheBench, по dreamhost.com

См. Также этот цифровой океан writup. <БР /> Видимо, это зависит от подключения архитектура обработки вы выберете для Apache.

Комментарии (5)

Я перейти с Apache на nginx / ПХП-ФПМ несколько месяцев назад.

Я сделал некоторые benchmarck с Drupal сайта и проверить несколько случае использовать. На VPS-сервер с 1 процессором и 512 ОЗУ МО

Друпал только с кешем

С nginx


ab -n 100 -c 30 xxx
Server Software:        nginx
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   2.775 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      2529500 bytes
HTML transferred:       2490200 bytes
Requests per second:    36.04 [#/sec] (mean)
Time per request:       832.394 [ms] (mean)
Time per request:       27.746 [ms] (mean, across all concurrent requests)
Transfer rate:          890.28 [Kbytes/sec] received

httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 48.946 s

Connection rate: 2.0 conn/s (489.5 ms/conn, 
Комментарии (7)

Вот это тест производительности за десять веб-серверов/варианты (например, Апач, nginx или lighttpd, света, Гайавата, Чероки). Три испытания связаны с Друпал.

Я'м думая, Гайавата может быть лучший выбор. Должен иметь полную совместимость с Drupal]2, имеет упор на безопасности (Дос, или XSS, CSRF атак, предотвращения SQL-инъекции), а скорость &ампер; след, похожий на nginx.

В двух из трех тестов на Drupal, как Гайавата и nginx превзойти Апач около 150%, а при статическом тестировании Друпал, незначительно превосходит Апач с nginx, в то время как Гайавата рекорды пакет примерно на 10%.

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

Комментарии (0)

здесь является нагрузочное тестирование результаты для Drupal работает на одном оборудовании, но с разными веб-серверами. (nginx и Apache)

вот вывод из этого теста:

под большой трафик с одинаковыми аппаратными ресурсами, то nginx выполняет лучше, чем Apache.

Комментарии (0)