Pilat

Рейтинг
250
Регистрация
08.03.2007

Вспоминая о недавней историей с гуру, не знающем что такое MaxClients и как работает апач - такие прайсы воспринимаются только как шум.

Уточню свою позицию

когда кто-то от имени кого-то с каким-то уровнем знаний в какой-то области предлагает услуги, доверия ноль.

Я спать пошёл. Всех с наступающим НГ и прошедшим Рождеством! Jesus Christ Superstarrrr!

Очевидная ошибка - в тестировании не того, о чём шла речь - а речь шла о DLE.

В 21:00 примерно я вижу 20 гигабайт памяти . Это при каких настройках? Как такое вообще можно было допустить, конечно будут любые очереди переполняться.

Вот пример нормально оформленного теста. Всё чётко и понятно. А у Вас куча графиков, некоторые из которых вызывают массу вопросов.

Pilat добавил 26.12.2009 в 00:46

Да, вопрос. swap везде на графиках нулевой. Почему?

Andreyka:
На Хабре писал же
Тестим москита, делаем ab на главную 20k

C тем же успехом можно тестировать и просто phpinfo().

Но после

Отключен Keepalive, а MaxClients и ServerLimit установлены в 10240

доверия к Вашим тестам нет. Надо всё-таки оформлять тестирование по-человечески - что тестируется, какие конфигурации. Кто знает, что там ещё выбрано в качестве параметров. И движок должен быть тот, о котором шла речь - DLE или аналогичный . Про оптимизацию десятискриптового движка речи не было.

Так что же тестируется? Какой движок? Какие запросы?

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

Ну и надо определиться что же мы тестируем. Пока я не понял этого. У Вас вс ещё 700 процессов апача висит и 20 гигабайт в свопе? Если нет, то почему munin не отвечает?

Ну во-первых. Для корректного теста апач должен быть за nginx - надеюсь это очевидно. Второе. maxclients должно быть реальным, не 1000 а 10 например. Вообще это хорошо определяется числом ядер и оперативной памятью. Ну и судя по графикам опять мы видим тест в бредовом исполнении.14 гигабайт памяти... 700 процессов... тестируется винчестер что ли?

Pilat добавил 25.12.2009 в 23:01

Andreyka:
Dlag и Pilat. Я в шоке от вас обоих. Какие треды в префорковских процессах? Учите документацию:
http://httpd.apache.org/docs/2.0/misc/perf-tuning.html, выдержка:

Не надо мне приписывать чужие слова про треды. Демагогические приёмы оставьте для других форумов.

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 - это не один человек, а несколько, в этом и объяснение таких странностей. Пишут по очереди, вахтами.

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

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

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

Andreyka:
nginx перед apache мало что даст, ибо сама суть apache - делать отдельный процесс на каждый вызов и php-fpm - обрабатывать все вызовы статичными процессами в памяти.
Нагрузку и тормоза дают именно форки апача, если же туда поставить apache как worker, то тормозов будет значительно меньше, особенно если процессы worker сделать по числу камней ;)?

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

Pilat добавил 25.12.2009 в 15:12

Dm:
А теперь самый актуальный вопрос... Внимание (барабанная дробь)...

А где вы видели в наше время хостера, у которого не установлен nginx перед апачем?

У Андрейки, вестимо.

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

cvss:
Нет, это неверно. Грузить один раз код - в смысле, executably binary file, это разница между FastCGI и CGI. Т.е. PHP-CGI каждый раз грузит интерпретатор PHP, а у PHP-FastCGI интерпретатор загружается один раз. Но сами php-файлы загружаются и интерпретируются одинаково и в PHP-CGI, и в PHP-FastCGI, и в mod_php. Кэширование загрузки файлов входит в задачу акселераторов типа eaccelerator и zend optimizer, только кэшируются не сами файлы, а уже компилированный опкод.

Выделенные пункты - это те самые загрузки файлов, либо со скриптами, либо с опкодом. Акселератор ускоряет компиляцию, но не ускоряет загрузку этих файлов. Вот как раз фаза загрузки файлов и оказывает существенное влияние на производительность, по сравнению с "прослойке между приемом HTTP-запроса и стартом скрипта" это влияние практически полностью должно нивелировать преимущества от php-fpm прослойки, и чем более навороченная система, тем сильнее это должно быть заметно.

Всего: 2890