Новогодний подарок хостерам: Как разместить на сервере 10000 клиентов или даже больше

12 3
Andreyka
На сайте с 19.02.2005
Offline
822
1991

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

Следует отметить, что под клиентом воспринимается обычный аккаунт на LAMP (Linux+Apache+Mysql+PHP), с одним-двумя виртхостами и работающим со всеми опциями php.ini по умолчанию. Основное — это 16MB RAM и 30 сек исполнения. Вполне достаточно для большинства движков — Wordpress, Drupal и Joomla.

Читать продолжение на Хабре.

Не стоит плодить сущности без необходимости
klassev
На сайте с 09.08.2007
Offline
135
#1

Ага, уже прочитал :) за интересное чтиво -спасибо! 🍿

Zaqwr
На сайте с 08.08.2007
Offline
111
#2

Andreyka, Почему Оптеронами? не совсем понял как заюзали php-fpm на шареде (500к полагаю именно под шаред)...

п.с. пьяных Москвичей из Зеленограда в Одессе не гонять....

Администрирование, Linux, Cisco, Juniper
DLag
На сайте с 15.08.2007
Offline
201
#3

А где подарок хостерам?

Или подарок это статья про открытие Америки?

Много костылей, большие затраты на железо, малый реальный выхлоп.

Собственно вам уже по этому поводу написали в красках на Хабре.

Вам бы опыт с реальным highload, тогда думаю нашли бы нормальные решения для этого.

А пока только гадания на кофейной гуще и каждое осенения выкладывается в статьях на Хабр для беснования чайников.

Руководитель датацентра UkrNames (http://ukrnames.com/)
Andreyka
На сайте с 19.02.2005
Offline
822
#4

Zaqwr, это был каприз заказчика - хотел только решения на AMD, типа религиозные соображения.

DLag, идите ревновать вместе с Филом. После того как начали рассказывать о тредах в префорке и путать их с беклогами-вместе с Pilat'ом - в хостинге вам делать нечего.

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

Andreyka, пока вы пишете о отдельном форке на каждый коннект в префорке вам нечего делать в администрировании.

О путанице с беклогом, которая пошла уже в другую степь вы общались только с Pilat-ом, с ним и решайте этот вопрос.

Но чушь городить о префорке не стоит.

Andreyka
На сайте с 19.02.2005
Offline
822
#6

В префорке один запрос в еденицу времени обрабатывается одним процессом - я говорил именно это.

А остальные лежат себе в беклоге и тихо ждут как будет свободен процесс.

Кстати - их лучше складывать в беклог фронтенда ящитаю ;)

DLag
На сайте с 15.08.2007
Offline
201
#7
Andreyka:
В префорке один запрос в еденицу времени обрабатывается одним процессом - я говорил именно это.
А остальные лежат себе в беклоге и тихо ждут как будет свободен процесс.
Кстати - их лучше складывать в беклог фронтенда ящитаю ;)

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

Там нет блокировки сокетов, в этом разница.

Процитирую ваши слова.

Что произойдет с апачем? Он на каждый коннект создаст процесс весом примерно 10Mb. 10mb*1000 = 10000Mb или ~1Gb. Про утилизацию CPU и LA я вообще молчу.
А теперь немного информации о том как работает префорк для чайников и тех, кто не умеет читать документацию.

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

А ведь достаточно посмотреть код mpm чтобы не писать такого.

Понятно что "лемминги схавают", но ведь не все такие.

Andreyka
На сайте с 19.02.2005
Offline
822
#8

То что nginx заруливает апач в чистом виде - ежу понятно

Вопрос вобщем то был не по это, а про 4 процесса mod_php против 4 процессов php-fpm.

А то, что выкрутить беклог и уложить все 256 запросов в очередь одному процессу - это можно, я не спорю. Другое дело что это не треды и будет отрабатывать последовательно - как результат клиент отвалит по таймауту. Это да.

Впрочем скоро намечается грандиозный бенчмарк, но после НГ. По предварительным резултатам будет заруливать первый апач со вкомпиленным PHP хыхы :)

DLag
На сайте с 15.08.2007
Offline
201
#9
Andreyka:
То что nginx заруливает апач в чистом виде - ежу понятно
Вопрос вобщем то был не по это, а про 4 процесса mod_php против 4 процессов php-fpm.

В статике и с четнием .htaccess. Это да.

На реальных сайтах nginx+Apache 1.3 делают nginx+php-fpm.

Бенчи уже сделаны, можете не выдумывать велосипед.

C
На сайте с 06.10.2009
Offline
69
#10
Andreyka:
В префорке один запрос в еденицу времени обрабатывается одним процессом - я говорил именно это.
А остальные лежат себе в беклоге и тихо ждут как будет свободен процесс.
Кстати - их лучше складывать в беклог фронтенда ящитаю ;)

Andkreyka, каждый php-fpm тоже обрабатывает запросы последовательно. Точно также, как apache/mod_php в prefork.

12 3

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