Хостер гонит за высокую нагрузку сайта на DLE? Тогда читайте эту тему :)

DLag
На сайте с 15.08.2007
Offline
201
#51

Проблема Apache в том что воркер занят до полной отдачи запроса.

А каждый воркер обладает полной функциональностью и потреблением.

Если поставить nginx перед ним эта проблема сводится к минимуму, т.к. отдачей запроса уже занимается nginx из своего буфера.

По сути получается тот же nginx+php-fpm, только обладающий большей гибкостью.

Без необходимости Apache не делает форков, не дает лишней нагрузки.

nginx+php-fpm годится для серьезно нагруженных проектов, а не для DLE-сайтов 1к уников.

И уж тем более хостинг для таких сайтов не должен стоить 50USD/мес.

Он даже 10USD/мес не должен стоить.

Руководитель датацентра UkrNames (http://ukrnames.com/)
C
На сайте с 06.10.2009
Offline
69
#52
Pilat:
Выделенные пункты - это те самые загрузки файлов, либо со скриптами, либо с опкодом. Акселератор ускоряет компиляцию, но не ускоряет загрузку этих файлов. Вот как раз фаза загрузки файлов и оказывает существенное влияние на производительность, по сравнению с "прослойке между приемом HTTP-запроса и стартом скрипта" это влияние практически полностью должно нивелировать преимущества от php-fpm прослойки, и чем более навороченная система, тем сильнее это должно быть заметно.

Про акселератор неправильно. Акселератор: 1) загружает файл (с php-кодом), 2) компилирует в оп-код, 3) сохраняет в кэш (например, shared memory), 4) отдает интерпретатора оп-код. При повторных попытках php загрузить этот файл, акселератор сразу выполняет шаг 4 и загрузка файла ускоряется, так как шаг 1 (загрузка файла) просто отсутствует.

А в целом, все верно, чем больше времени находится на стороне php - выполнение программы, запросы к БД, тем меньше разница. Для вордпресса без кэширования с кучей модулей разница станет практически незаметной. Но для быстрых движков или более специализированных случаев (счетчики, баннерные крутилки), при использовании к тому же кэширования промежуточных данных в memcached или shared memory, разница составляет до 20% плюс некоторая экономия памяти. Не так уж много, но "бесплатно".

P
На сайте с 08.03.2007
Offline
250
#53
cvss:
Про акселератор неправильно. Акселератор: 1) загружает файл (с php-кодом), 2) компилирует в оп-код, 3) сохраняет в кэш (например, shared memory), 4) отдает интерпретатора оп-код. При повторных попытках php загрузить этот файл, акселератор сразу выполняет шаг 4 и загрузка файла ускоряется, так как шаг 1 (загрузка файла) просто отсутствует.

Да нет, всё правильно. Кэш - это не обязательно shared memory, иногда это просто файлы. А иногда акселератора нет вообще - по объективным причинам.

В рассматриваемом случае используется DLE - непонятно, как оно будет ускоряться. Подозреваю что слабо.

C
На сайте с 06.10.2009
Offline
69
#54
Pilat:
Да нет, всё правильно. Кэш - это не обязательно shared memory, иногда это просто файлы. А иногда акселератора нет вообще - по объективным причинам.

Но мы же не будем на практике, ориентируясь на повышение скосроти, выбирать самое худшее с точки зрения производительности решение :)


В рассматриваемом случае используется DLE - непонятно, как оно будет ускоряться. Подозреваю что слабо.

Согласен.

Andreyka
На сайте с 19.02.2005
Offline
822
#55
Pilat:
Ну вот мы и добрались до сути непонимания Вами что именно надо тестировать. Апач не делает форки на каждый запрос, если его не принуждать к этому специально. Занавес...

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

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

Не стоит плодить сущности без необходимости
DLag
На сайте с 15.08.2007
Offline
201
#56
Andreyka:
Prefork делает процесс для запроса. Можно выкрутить backlog, но тогда получим падение поизводительности
Хотите - киньте сюда свои настройки для апача - запущу с ними, сервер пока работает 🍾

Для запроса форк не делается если есть свободные треды или достигнут лимит тредов.

Честно говоря поражаюсь вам.

Столько россказней о профессионализме, а такие вещи пишете.

P
На сайте с 08.03.2007
Offline
250
#57
Andreyka:
Prefork делает процесс для запроса. Можно выкрутить backlog, но тогда получим падение поизводительности
Хотите - киньте сюда свои настройки для апача - запущу с ними, сервер пока работает 🍾

Апач НЕ ДЕЛАЕТ процесс для запроса. НЕ ДЕЛАЕТ. Он делает процесс для нескольких последовательных запросов - а их может быть много-много. см. Apache MPM prefork , раздел "How it Works".

Примеры настроек приводятся, например, в http://www.pentarh.com/wp/2008/07/11/test-results-apache-vs-php-fcgi/ .

Pilat добавил 25.12.2009 в 17:54

DLag:
Честно говоря поражаюсь вам.
Столько россказней о профессионализме, а такие вещи пишете.

Andreyka - это не один человек, а несколько, в этом и объяснение таких странностей. Пишут по очереди, вахтами.

DLag
На сайте с 15.08.2007
Offline
201
#58
Pilat:
Andreyka - это не один человек, а несколько, в этом и объяснение таких странностей. Пишут по очереди, вахтами.

При этом пишут одно и тоже заблуждение только когда Андрейка у компьютера? :)

Особенно судя по высказываниям самого Андрейки он таки один.

Так что врядли. :)

C
На сайте с 06.10.2009
Offline
69
#59
DLag:
Для запроса форк не делается если есть свободные треды или достигнут лимит тредов.

Честно говоря поражаюсь вам.
Столько россказней о профессионализме, а такие вещи пишете.

DLag, вот уж вам в этом никого упрекать не стоит :). Как пишет Ноам Хомский, ханжа (лицемер) — это тот, кто прикладывает к другим стандарты, которые отказывается применять к себе.

DLag
На сайте с 15.08.2007
Offline
201
#60
cvss:
Как пишет Ноам Хомский, ханжа (лицемер) — это тот, кто прикладывает к другим стандарты, которые отказывается применять к себе.

Вы о себе?

Вы самокритичны...

Где мои 500 рублей кстати?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий