Andreyka

Andreyka
Рейтинг
822
Регистрация
19.02.2005
Интересы
Zen
Some like a wizzard
Pilat:
Ну вот мы и добрались до сути непонимания Вами что именно надо тестировать. Апач не делает форки на каждый запрос, если его не принуждать к этому специально. Занавес...

Prefork делает процесс для запроса. Можно выкрутить backlog, но тогда получим падение поизводительности

Хотите - киньте сюда свои настройки для апача - запущу с ними, сервер пока работает 🍾

Ок, только mysql на отдельном, чтоб не влиял на тесты

nginx перед apache мало что даст, ибо сама суть apache - делать отдельный процесс на каждый вызов и php-fpm - обрабатывать все вызовы статичными процессами в памяти.

Нагрузку и тормоза дают именно форки апача, если же туда поставить apache как worker, то тормозов будет значительно меньше, особенно если процессы worker сделать по числу камней ;)

Andreyka добавил 25.12.2009 в 08:45

Pilat:
Всё-таки такие тесты смысла не имеют - они меряют фигню. Надо что-то осмысленное пускать, в реальности 500 ответов в секунду не будет, а будет 10 и совсем другие причины начнут работать, например открытия файлов.

Кстати, как на счет теста Битрикс - два апача, один в prefork mod_php, другой worker php-fpm?

Оранжевое и синее - игнорируйте, смотрите в apps

whites, они никогда не использовали :D

С помощью карты, переменной и гугла

broken:
мужчины. честно, надоело уже. конструктива ноль, а помои хлешут в обе стороны. давайте тему закроем на этом, если конечно нечего сказать по существу ТС, который просто спрашивал какой тариф ему подойдет для двух сайтегов на ДЛЕ.

Для DLE подойдет это - /ru/forum/438004

Предоставьте север. Потестим. А то потом скажете что я на своем VDS результаты подкручивал :)

Прежде чем что-то писать, просьба читать документацию. В частности: http://httpd.apache.org/docs/2.0/mod/prefork.html

This Multi-Processing Module (MPM) implements a non-threaded, pre-forking web server that handles requests in a manner similar to Apache 1.3

A single control process is responsible for launching child processes which listen for connections and serve them when they arrive. Apache always tries to maintain several spare or idle server processes, which stand ready to serve incoming requests. In this way, clients do not need to wait for a new child processes to be forked before their requests can be served.

The StartServers, MinSpareServers, MaxSpareServers, and MaxClients regulate how the parent process creates children to serve requests. In general, Apache is very self-regulating, so most sites do not need to adjust these directives from their default values. Sites which need to serve more than 256 simultaneous requests may need to increase MaxClients, while sites with limited memory may need to decrease MaxClients to keep the server from thrashing (swapping memory to disk and back). More information about tuning process creation is provided in the performance hints documentation.

А теперь немного информации о том как работает префорк для чайников и тех, кто не умеет читать документацию.

Апач открывает на каждый коннект по отдельному процессу + держит в запасе несколько процессов про запас, за что его и прозвали префорком. Максимальное число процессов задается через MaxClients. Соответственно 256 коннектов требуют 256 процессов. В перфорке ServerLimit должен быть таким же как и MaxClients, в воркере это например работает иначе.

Многие считают, что один процесс префорка может обработать много коннектов и за это отвечает опция MaxRequestsPerChild 🤣

На самом деле эта опция отвечает через сколько запросов процесс будет прибит. Это нужно если где-то течет память и процесс "разбухает.

А теперь считаем

1000 одновременных коннектов обработают 2 процесса php-fpm по 512 коннектов каждый. Они занимают 20mb. Плюс один воркер nginx который вообще весит пару копеек.

А теперь сравним с апачем - 1000x10mb - это ~ гиг. Ну а теперь сравним 20 метров и гиг. Разница значительна, не так ли🚬

Всего: 12866