отличная статья, спасибо. Вы дали именну ту информацию, которую нужно на форумах и в прочих сообществах собирать по капле и проверять опытным путем. А здесь готовый план действий — остальное дело техники.
Я так понимаю, что для содержания 500-1000 клиентов можно обойтись бюджетной конфигурацией сервера с теми же настройками, что и внутри любой из ваших виртуалок?
спасибо, есть сервер с клиентскими сайтами и разными проектами, работает стабильно, но он был первым реальным сервером, который я настроил с нуля самостоятельно и только со временем начал замечать, что и где можно было бы сделать лучше или вообще не делать и выбрать другое решение))
Я правильно понял, что ты так долго рассказывал как разместить 500 клиентов с похапой на сервере с 4Gb RAM стоимостью примерно 3000$ в рф? 3000x30=90000
Намекни нам на профит, при том что за 3000$ модно взять честный Core2Quad, 8Gb RAM и никого не мучая запихать туда те же 500 клиентов с 1-2 сайтами без извращений типа отсутствия логов, 32-битного софта и openvz.
P.S. Ты в стоимость клиентов забыл включить выделенный mysql. Он-то тут решает, кстати.
Сравнимаем — размещение ~500k клиентов за 90k$, куда входит сервер с MySQL или 3k$ на каждые 500 клиентов.
Может тебе калькулятор на Новый Год подарить? ;)
Сумбурная статья.
Сколько в итоге клиент получал памяти и места, а также трафика?
500k клиентов всего / 15клиентов на одной машине = 33 машины со 128Gb в каждой? Стоимость одной машины $2700 ??? Не верится.
И каждому клиенты запрещалось .htaccess и насильно давались конфиги nginx?
Ссылку на получившийся хостинг можно?
Не все клиенты используют полностью все ресурсы. И на один форум идет десяток страниц типа я и моя кошка. Так что там не 33 машины, да и не влезло бы это все дело в одну стойку :)
Стоимость машин без скидки можно увидеть на сайте dell.com
Каждому клиенту можно править .htaccess, ведь там для этого апач собственно и был оставлен по большому счету. Читайте внимательней!
Ссылку не могу дать ибо я никогда не свечу своих заказчиков, если они этого не хотят.
Полный треш — точнее сложная система, которая не у всех сразу заработает… Хотя направление мысли очень хорошее — вбить на 1U как можно больше клиентов.
Возможно что и не у всех, не каждый умеет делать хостинги.
Я например не умею делать сложные системы на PHP. Однако никогда не буду писать про такие статьи что они треш — это как минимум не этично.
Э-не, друг. Ты или трусы надень, или крестик сними :)
Ты уж убери тогда, не позорься. Я вообще, не очень понял, что ты хотел сказать этой статьёй? При таком подходе, какой ты демонстрируешь ниже, мог вообще и не париться :) Ввернуть пару тысяч воркеров апача, поставить перед ними nginx и в голову себе не брать всякой чепухи. А что ты выиграл этим после «а типа пох как они за такие деньги работают» я не очень понял.
Ну и главный вопрос — если уж php работает как fastcgi, то зачем нужен апач?
Единственный ответ на это может быть «для клиентских .htaccess», и тут возникает следующий вопрос — а если есть деньги на сервер с 128 гигами памяти, то может быть найдется немного для оплаты труда разработчика, который напишет ngx_htaccess_module?
Памяти-то и процессорного времени скока можно будет съэкономить, ууу.
Так и mod_spread тоже можно было бы заточить. Проблема была в том, что заказчик не хотел быть зависим от какого-то разработчика.
В этой версии хак для nginx работает, в следующей — нет. А содержать постоянно штат работников — уже не выгодно.
И да, раз уж php в режиме fastcgi, логично будет приделать к нему кеш байткода (eaccelerator/xcache/apc на выбор), это в несколько раз уменьшит нагрузку на процессор со стороны php (правда увеличится потребление памяти, но незначительно).
PHP-FPM работает от nobody, соответственно для nobody заводится алиас который шлет все на смартхост.
Кстати — рекомендую, ssmtp можно даже настроить слать через gmail аккаунт.
Каюсь. Но побуду идиотом ещё немного. Что с безопасностью-то? У Вас php-fpm работает от nobody для всех пользователей. И что Вы в такой схеме делаете с пользователями, которые хотят почитать чужие файлы?
Кроме этого, на шаред-хостинге вредно держать php-fpm и по другой причине — при константном числе php-процессов любой скрипт, ожидающий завершения какой-нибудь внешней операции — ответа от mysql-сервера, отправки письма, открытия через fopen какого-нибудь URL, ресолвинг DNS и тысяча прочих подобных вещей, будет задерживать другие запросы к php-скриптам.
В реальности, на серверах с парой сотен среднестатистических клиентских сайтов с средней нагрузкой параллельно выполняются 10-20 скриптов на PHP.
Для данного случая на 10k сайтов имеем 12 процессов php-fastcgi и, следовательно, только 12 одновременно работающих php-скриптов. И порядка нескольких тысяч запросов к php, ожидающих в очереди по 10 минут.
За дополнительную оплату заказчик продает процессы работающие от логина пользователя.
Остальным это ненадо, особенно если весь сайт на HTML — бывают и такие.
Вот так появляются оверселлеры. Надо будет написать статью «как заставить клиента добровольно платить 100$ в месяц за хостинг и при этом чтобы он был доволен».
Хостеров с подобным подходом, я хочу пытать долго и мучительно и только паяльником. Купишь у вас шаред за $7 — 10, а он мало того что обрезанный и на нем все еле ползает, так потом еще и отрубаете аккаунт при 70 посетителях в день, рассказывая сказки про прожорливый скрипт index.php и мол, оптимизируйте или берите у нас dedicated…
Я хочу, чтобы шаред держал сайт до 4к уников в сутки на шареде. И если бы такое не встречалось, я бы никаких претензий не предъявлял таким вот хостерам. Но такие хостинги есть и я ими пользуюсь. Правда, чтобы найти их пришлось перелопатить кучи оверсельного г… на.
Я тоже хочу. А еще я хочу чтоб в колбасе было мясо, а в молоке — молоко а не порошок+пальмовое масло.
Однако реальность такова, что шареды которые держут по 4k в сутки стоят от 10$ в месяц.
Уважаемый, не нужно мне рассказывать про реальность. Я сам ей пользуюсь и плачу не более десятки в месяц, причем я знаю около 10 вот таких нормальных хостеров. И кстати, мясо в колбасе бывает, правда не в России.
У меня на iWEB лежит два десятка сайтов. Все на Drupal. В .htaccess выделил 64Gb для php.
Вот этот сайт держал несколько штурмов по 1-5к в сутки в связи с обзорами в сети и оффлайн выставкой, а с этого раздавались картинки для моего обзора на хабре и он выдержал хабраэффект в 7к уников в сутки без какого-либо намёка на тормоза (>1Mb картинок на один показ обзора).
Пакет стоит меньше $100/год
У них на всю площадку один рейд? Или Вы вспоминаете времена, когда у мастерхоста было 200 клиентов?
Летний перегерев их ДЦ вспоминают года 3 в каждом хостосраче =)
Процов то 2 на всех. Или у вас кулера никогда не умирали? Мамки не горели? БП не горели?
Отказоустойчивость системы на равне с обычным серваком, при этом обслуживает она не 100 кастомеров, а в 150 раз больше.
Гикнет проц — пока разобрались, пока заменили, никак не быстрее 1-2 часов. За это время вам позвонят 1500 юзеров, а если дольше 2 часов — все 5000, и разорвут колцентр на британский флаг. + получите такой отклик на форумах и в блогах, что это будет вам стоить сотен, если не тысяч новых кастомеров и несколько сотен попросят манибэк.
Опыт управления хостинговой компанией есть? Или только настройка железок?
Очень сложная система. Пару недель назад, тут пробегала статья от какого-то хостинга тоже (извините не помню) где они апатч перекомпиливали под себя и запускали его в больших количествах. У них система по производительности (как они показывали) не хуже, но намного проще
И потом сношались с gd под вкомпиленным php? Так это тот самый Фил, который аплогет фри и не любитель вкусить плюшек ovz.
Кстати, на его месте я бы так не делал, а оставил бы первый апач с вкомпиленным php. А для контроля запросов можно и mod_accel прикрутить. Какая разница какой апач, если они по факту будут висеть и жрать оперативку постоянно?
С gd я сношался только потому что сдуру попал на неудачную ветку портирования. От этого не застрахован ни Linux, ни Windows. ovz тут не при чём. Чем мне он поможет я так и не понял.
У меня вообще 1-ый апач :) Я там не сказал что ли?
Кстати, а расскажете, зачем вам OpenVZ? Он так сильно дает преимущество по ОЗУ, если юзать 64 апачи без OpenVZ по сравнению с OpenVZ+apache 32bit? И как вы передавали внутрь него запросы? либо у каждой виртуалкуи свой ип?
Какая панель управления используется на этом хостинге? Или какой-то готовый набор скриптов? Если нет, то сами его писали?
Ведь не руками они заводят виртуалхосты, базы и прочее?
Как осуществляется балансировка нагрузки, как определяется на каком OpenVZ VE заводить хост?
Что происходит в случае DDOS-атак на какой либо сайт, как выявляется это?
я хотел бы спросить — ты советуешь этой «новогодней статьёй» всем делать такой же непотребный треш? Или ты намекаешь на то что мы все так делаем? Или и то, и другое одновременно?
Отвечаю по порядку.
1. Ты путаешь своп FreeBSD при которой сервер идет в даун со свопом Ovz, куда скидывается то, что может не лежать постоянно в памяти. Хороший пример — виртуалки с java, сразу видно сколько ей реально таки надо оперативки.
2. Да, я утверждаю — VDS это очень хороший вариант при переходе с виртуалхостинга на дедик. Там можно «вылизать» все настройки а потом смигрировать их на реальный сервер. Про цену вообще молчу. Вопросы?
3. Да, я не считаю что 16Mb — это недостаточный минимум в нынешнее время, заказчик считает иначе и это его право.
4. Хорошо, твой хостинг эта картинка не затрагивает. Не злись.
P.S. А треш — это пытаться вкомпилить PHP во второй апач, о чем в свое время я писал тебе в ЖЖ, только более корректно.
1. Ты путаешь своп FreeBSD при которой сервер идет в даун со свопом Ovz, куда скидывается то, что может не лежать постоянно в памяти.
Эээ… Ты утверждаешь, что при 256Gb памяти и 512Gb свопе — ты расчитываешь на то что 2/3 вот этого хосинга ничего не делают? Ты хочешь сказать, что поведение Linux и FreeBSD кардинально различаются в плане свопа? Причём тут вообще ovz?
2. Да, я утверждаю — VDS это очень хороший вариант при переходе с виртуалхостинга на дедик.
Казалось бы, и причём тут эта статья?
Ты мне скажи, что ты вообще всей этой статьёй сказать хотел?
Администрирую shared-хостинг, одна из машин: dual quad-core opteron из стареньких, 4Gb RAM, фряха x86, nginx, PHP-FCGI. memory_limit 64Mb, max_execution_time 1800. MYSQL здесь же, EXIM здесь же. Никаких дисковых полок, 4 SATA-винта в этой же машине.
45000 сайтов на PHP. статических нет вообще. судя по загрузке железки — ещё тысяч 15 влезет без ущерба для скорости. логи ведутся для всех.
Городить огород из виртуалок на 12-тиядерной машине, которая обслуживает только PHP, и при этом тянет только 20k сайтов… что-то я не понимаю в этой жизни…
не замеряли, полез смотреть специально…
за последние сутки PHP обработал ~500 тысяч запросов.
сколько там чего отдал nginx без участия PHP — считать не буду, извините.
сомневаюсь, что у топикстартера расклад кардинально иной. нормальная статистика для массхостинга.
правильный вывод из этих цифр — мериться количеством сайтов физического смысла нет… нужно измерять количество ударов по PHP в сутки, например. вот если автор озвучит свои показатели, посмотрим, оправдывается ли дикое удорожание и усложнение системы.
Ничем. Я утверждаю, что не существует общего критерия для оценки нагрузки. Можно измерять частности. Можно вести сравнительную оценку конкретики например в тех же запросах. Но запросы без детального уточнения не говорят вообще ни о чём.
какая-никакая конкретика: число запросов к страницам «популярных CMS», как выразился автор. по крайней мере мой юзкейс таков. у автора, я так понимаю, хотя бы частично то же самое.
это если хочется конкретизировать степень сложности php-шного бекенда.
что ещё можно конкретизировать «в тех же запросах» — в голову так сразу и не приходит…
что такое «популярные CMS»? из чего исходит мысль, что их загрузка идентичная? откуда статистика корреляции запросов и нагрузки на десятках тысяч сайтов? с чем связана мысль о том, что эта корреляция идентична у двух разных архитектур и не имеет обратных связей?
в общем и целом я понял так, что хотя бы намекнуть автору о том, что он городит херню на деньги заказчика, у меня не выйдет — массхостинги не сравниваемы, критериев нагрузки на сервер ещё не придумали…
ну что, не мой день, пойду оливье кушать.
Думаю что показатели количество запросов к PHP в секунду и время выполнения запроса достаточны для анализа нагрузки на сервер.
Временной график (MRTG?) всё наглядно покажет
Ээээээ… Запрос к php в данном случаи это любой запрос переданный на выполнение фастцги бэкэнду (php) ясное дело. Время выполнения среднее либо эталонное.
При всём моём уважении «лол что?»
1. Выдерживает 10000 хостов/хитов/уников в сутки и 10000 запросов к php-бэкенду — это уже да абсолютно разных джентльмена.
2. И что там на бэкэнде? «Hello, world» или DOM-парсинг? Что там среднего будет?
что такое «уники» и что такое «запросы к php-бэкенду» тогда?
что создаёт нагрузку на сервер?
среднее это когда складываешь и делишь. Для анализа IMHO сгодиться.
Берёшь два графика — запросы + время выполения. Как только время начинает расти — значит пора обновлять железо.
и не важно сколько «хостов», мы же не собираемя оптимизировать код.
Несомненно :) Это критерий оценки динамики конкретики. Но не критерий измерения :) Мы не можем с Вами как нашими более важными органами померятся :) Типа я столько хостов выдерживаю, а Вы столько. Разница анализа и измерения понятна?
Померятся вы можете финансовыми показателями типа 200 баксов прибыли с сервера за штуку баксов.
или что тоже самое — «на сервер с 2 гигами я засадил 3000 клиентов и они мне платят»
и нету разницы сколько запросов обрабатывает php, да.
Вы понимаете, что это вопрос ни о чём? Оба афтара не в курсе к чему и какие запросы в каких условиях. Для них это единицы измерения, а не анализ динамики.
и кстати, байткод у нас не кешируется, физической возможности пока нет… с каким-нибудь eAccelerator, capacity, полагаю, выросла бы раза в два как минимум.
придираетесь к словам… про валидность меряния сайтами я уже выше написал.
к примеру, на одном из сайтов этого сервера сегодня было 14 тысяч уникальных посетителей =)
почему вас так беспокоят непосещаемые сайты? уверяю вас, они не являются мне во сне, и для вас тем более никакой опасности не представляют =)
я рискну предложить в третий раз, надеюсь, и в последний: измерять целесообразность «авторской методики» следует количеством выдерживаемых хитов по бекенду относительно сложности схемы и стоимости реализации.
насколько я понял по цифрам, одна железка топикстартера обходится «со скидкой» в $20k. это же, извините, офигеть можно.
плюс четыре юнита вместо одного, два кабеля питания вместо одного — удорожание ежемесячной арендной платы раза в четыре.
о сложности программной реализации и её последующей поддержке не говорим вообще…
оки, если при отключении xCache железка по «авторской методике» нормально будет держать >5 миллионов хитов по PHP в сутки — может быть методика и имеет право на жизнь.
но почему я уверен, что выкинув openvz и apache, и сделав простейшую реализацию на nginx+fcgi, они на том же железе поднимут capacity в разы?
ай-яй-яй, как я мог забыть про то, что у топикстартера ещё и под mysql и почту отдельные, и, по всей видимости, весьма «жирные» машины. которые нужно покупать, хостить и обслуживать.
Странный какой-то материал и цифры странные. Все комменты не читал.
А почему логи должен писать апач вообще? Nginx для этого подходит идеально, и буферы можно подкрутить. Логи это нифига не узкое место. ну и 10к клиентов на один сторадж с сата дисками это жеско :)
Тут есть некоторая проблема. До этого проблемного места всё ещё выжить должно. Своп меня, например, кладёт намного раньше: habrahabr.ru/blogs/hosting/75386/
Андрей, ни разу не поверю, что Вы не могли скачать OO.org и проверить орфографию. Хабр — это ведь не помойка. Если Вы считаете себя Профессионалом, то и к своим текстам так же должны относиться.
Поясню в чём суть. — Людей, которые обладают знанием, достаточным для того, чтобы понять, что ты ламер, гораздо меньше, чем ламеров, которые думают, что ты профессионал. Отсюда, собственно, весь твой профит и проистекает.
Вообще, не откажу себе в удовольствии ткнуть тебя носом в тэйбл, ибо, суко, достал. Есть такая платформа, как Virtuozzo — это коммерческий брат/сестра OpenVZ. В отличие от OpenVZ, позволяет достичь большей плотности размещения.
Но, открою тебе секрет — обычный chroot + mount bind позволяет достичь такой же плотности, ибо всё, что даёт OpenVZ, это управление использованием CPU и другими ресурсами.
А теперь найди себе стенку из красного кирпича, и разбегайся получше, ибо достал. Сцуко.
Видишь-ли, Андре, проблема не столько в твоём стремлении пост-фактум «технически» разобраться в разнице между Virtuozzo™ и OpenVZ, сколько в том, что ты фатально заблуждаешься насчёт того, что OpenVZ позволяет достичь, говоря глупости навроде: «… так как одинаковые виртуалки неплохо шаряться памятью между собой, благодаря OpenVZ …».
Это, чёрт побери, банальные основы всех современных операционных систем — если ты запустил несколько копий одной и той же программы, несомненно какая-то экономия памяти будет. Но вот только если у тебя есть /vps1 и /vps2 и в каждой из них по отдельной честной копии apache (разные i-nodes), OpenVZ не сможет «волшебно» понять, что там и там, и там apache один и тот же, и вообще весь /usr/bin совпадает. Могла бы помочь технология навроде KSM, которая пока ещё в процессе становления, что не мешает ей, при этом, уже использоваться, но там пока регионы памяти должны отмечаться специальным аттрибутом, чтобы получить возможность быть прошаренными. Впрочем, для qemu-kvm это уже хорошо.
Вобщем, и на этот раз у тебя вышла статья типа «Атаки конкурентов, способные нанести вред вашему сайту: Атака на DNS (Корень проблемы: UDP)», от который спец-ты плевались… неудивительно — ведь зияющие пробелы IT-основ ставят тебя на один уровень со script kiddies. И при всём при этом, ты продолжаешь заниматься саморекламой. Что ж, как я уже пояснил, подход не без профита — неспециалистов больше. Вот только, когда-нибудь, всё-таки, тебе это сильно аукнется.
Роговскому, как всякому нормальному социопату, любые увещевания — до лампочки. Товарищ не способен учиться по определению, поскольку заметить собственные ошибки он не в состоянии, а любая критика извне — это происки конкурентов и завистников. Все что он извлек из головомойки на тему DNS — это знание о существовании услуги 'Slave DNS'. Теперь с применением этого знания он строит геокластеры с балансировкой через DNS :)
Новогодний подарок хостерам: Как разместить на сервере 10000 клиентов или даже больше