Apache vs Ngnix+FastCGI vs Ngnix+Apache — что производительней для php?
VPS не особо мощный, скрипт будет исключительно на php, никакой статики.
1 пользователь будет плодить минимум 50 одновременных запросов к php скрипту.
Базы данных нет.
Каждый php скрипт отдает какой то контент, либо это html либо файл (jpg,png редко mp4 (2-3мб)).
Если одновременно на сайт зайдут 100 чел (посещаемость планируемая при старте), то веб сервер должен одновременно обработать 5000 запросов.
В дальнейшем появится статика, это примерно на 10% снизит нагрузку.
Но в любом случае, кэш так же отдается через php, хотя возможно скрипт будет просто генерить хеадер с редиректом на статический файл (еще не решил).
Какие есть рецепты для моего случая чтобы использовать производительность сервера на максимуме?
Виктор Таран: ну вот так проведите тесты производительности пхп и увидите что там наименьшее количество накладных расходов в режиме модуля апача, в вашем ответе вы ходите через фесткгай, а там у вас как минимум сеть появляется в промежутке, что уже плохо, можно конечно ходить по сокету, но там есть рамсы на хайлоаде и вроде их до сих пор не поправили и просто советуют ходить вместо сокета по сети.
8 лет только этим и занимаюсь ;)
Вот сравнение скоростей ( в обсалютных значениях)
1. nginx +phpFPM+opcache
2. Nginx+apache+fastCGI+opcache
3 Apache+mod_apache+opcache
4. apache+ CGI
и да ваш вариант находится почти в ровень с апачь сиджиай. По сути один из самых медленных.
Виктор Таран: ну а как меряете?
Ну вот например статья отличная https://habrahabr.ru/post/226875/
В плане пхп вариант с мод пхп самый быстрый
У нгинкса и пхп фпм есть другие преимущества, но не в скорости самого пхп
OnYourLips: ну или вот например. slonik-v-domene.livejournal.com/141951.html
это вполне очевидные вещи же что у апача наименьшая прослойка до пхп
это конечно никак не умаляет скажем других супер быстрых фишек нгинкса, например в отдаче статике, ну или преимущество пхп-фпм в том что обьем памяти занятый у него будет намного меньше.
хрень полная!
Вы видите чеим он тестирует ?
это можно назвать полонценным тестом ?
Для отценки реальной производительнсоит нужно настроить хотя-бы 10-20 серверов под разными ос и разными сайтами, с реальными бэкэндами и учитывая уровень говнокода реальных сайтов.
Провести реальные тестовые нагрузки, учитывая распродажи и тд.
Подключить яндекс танк и тд и тп.
Собирать статистику не с самого сервера а с усредненого значения. скорости построения дом модели у реального пользователя, с учетом на загрузку динамического и статического контента с облачных сервисов и без них.
Короче. эта статья хрень, притом совершенно поверхностная 100% синтетический непоказательный тест. К реалиям она отношения не имеет.
Виктор Таран: ну я сам тестировал в свое время это и уверен в своих тестах про пхп .
Я вас уверяю в среднеодинаковых условиях пхп в модуле апаче будет работать быстрее так как там прослойка меньше.
Он имеет прямо отношение к реалиям, когда скажем у вас работает апи которое чувствительно к производительности.
Тест полностью ориентирован померять производительность пхп , не меряя ничего другого, вы говорите сайты, а сайты это же не только пхп это еще и статика у вас поди и прочие штуки.
Виктор Таран: ну насколько вам важно изменение ответа сервера скажем на 5мс? Есть у вас проекты у которых такие требования?
Или например сколько у вас проектов с проблемой 10к конкурентных запросов?
Проекты просто разные , мне кажется для 99% выигрыш между апачем с модулем пхп и nginx + php-fpm для них просто не важен. Поэтому он скорее всего не важен для вас.
Мод апачь в принципе не жизнеспособен у него столкьо проблем что его вообще рассматривать бессмыслено, че стоит только корявое разграничение прав на файлы, и сессии, да перечислять можно вечно.
а на серверах с большим коилчеством ядер и относительно небольшой частотой так это вообще превращяется в смех. притом нифига не прикольный ибо объяснить заказчику что его ноут по факту отдает сайт быстрей нежели сервер с 48 ядрами и под милион ценой, достаточно трудно.
И тут php-fmp дает не просто минтетический прирост а реальный притом настолько сильный что отказ от .htaccess смотрится на этом фоне мягко говоря смешным. А в купе с этим отсутствие проблем fastCIG c 503 ошибкой вообще не оставляют никакхи сомнений.
Виктор Таран: Блин на больших хайлоад проектах вообще срать на права, там всегда крутиться один проект, зачем какие то права разграничивать там , пусть все будет под юзером апач или www-data.
Ну разница в немного милисекунд вообще не заметить и явно в разы сайт не ускорить переходом на nginx-php-fpm, если конечно у вас не упираетесь в какие то ресурсы или отдачу статики.
Блин явно уж причина 503 не в в апаче же и такое будет тоже самое скорее всего в нгинксе , если вы через обои отдаете только пхп.
Пума Тайланд: критически важен!
Проффесианализм он в деталях.
99% ваших знаний стоят - 0 рублей
а оставшийся 1% - это то за что вам платят.
так же и в серверах.
Пума Тайланд: на хайлоад проекттах конфигурирую файловые системы под логи со своими показателями. под данные под свои под ос и тд свои. Вытачивается любая, ЛЮБАЯ вещь которая теоретически может нагружать I-O
И на хайлоад проектах проблема приходится форматить файлы под ext2 и хранить в них мелкие файлы
( не опечатка). специфика файловых систем поиск по файлу быстрей чем по дерево каталога. и тд и тп. так что все что пишу это как-раз таки обычные сайты 50-15000 уников.
Виктор Таран: тогда я не понимаю как вы можете утверждать, что лишняя сетевая прослойка может быть быстрее чем прямое обращение к модулю внутри программы?
За счет чего оно может быть быстрее?
Теоретически можно сократить расходы на вызовы для поднятия сокета за счет кипэлайв, но опять таки это относительно новый функционал для апстрима и я вот сейчас его тестирую, пока что то не могу сообразить насколько оно лучше.
А вы вкурсе например что ipv6 в АААА записе дадут вам до 30% скорости обращения к сайту ?
А вкурсе что http/2 тоже добавит ?
Что же касается nginx у него есть куча неоспоримых плюсов, строить кластера на нем одно удовльствие. А производительность прослойки в данном случае превышает затраты на ее работу.
Виктор Таран: сказать честно давно забил на это, к сожалению там где много мелких файлов , все через жопу и большого перформанса ни на одних настройках и ни на одной файлухе я не получил.
У екстов то вторых ограничение на размер как вы там что то храните?
Ну если просто рассм атривать хайлоад, слава богу ссд по большей части спасли ио
Виктор Таран:
Ну а вы в курсе сколько процентов людей ходит к вам по ipv6 ? Сказать честно никогда не задумывался надо его перформансом в силу малой распространенности.
Ой блин на хттпс уже все что можно давно переехало с появлением летсенкрипта.
Какая нахрен производительность прослойки, это сетевые вызовы ядра, которые только добавляют сколько то мс в ответ сервера. У сетевой прослойки в видео обращения на локалхост в 9000 порт ну никак не дает производительности, посмотрите эти вызовы в том же strace
Пума Тайланд: да эти траблы только на реальных хайлоадах.
да ссд решает реально большое количество проблем и на все сайты где физически можно впихнуть ссд , рекомендую только их, проблем с I-O там настолько меньше что даже говрить не приходится,и особенно с мелочь. Но по реальным замерам, хорошо сконфигурированныый mod_apache проигрывает при нагрузках почти на 54% ( усредненное значение на 10К хитов до полной загрузки дом моделис с контентом, на конечном компьютере реальных пользователей )
OnYourLips: ну проведите тест сами и увидите теже яйца , еще не настал момент когда сетевые вызовы и открытие сокетов стало вдруг дешевле чем отправить тоже самое у себя внутри в программе
OnYourLips: а забыл еще там же везде по сути префорк и в апаче и фпм, то есть по сути их запуск уже произведен до запроса, так что в этом плане все одинаково