Обновить
Комментарии 56
Очень интересно было почитать, спасибо!
В избранное ;-)
Дайте координаты Дак Чау (Duc Chau), сделаем аналог на
на двух серверах Dell (по 4 ГБ памяти и по два процессора)

Спасибо за статью, не всегда наращивание серверной мощности
лучше чем проф. разработчики.
"бутылочным горлышком" = "узким местом"
поставили бы nginx, а БД лучше бы оракл под солярку
и было бы им счастье :)))
а может тут кто-нибудь из hardware-people хотя бы в очень первом приближении посчитать сколько бы сэкономили на "железе", если бы не уволили perl-coder'a и остались бы на Unix-рельсах в разработках? Понимаю, что сложно, но выше люди вот бросаются весьма интригующими заявлениями о двух Деллах ))
Это они по глупости или по наивности бросаются.

LJ работает на Perl, имеет нагрузку на порядки ниже и использует серверов существенно больше, чем 2.
Да и дело-то не в количестве серверов. А в том, что такие нагрузки никто ещё не переваривал и решений не находил.
я думаю вариант сервера от майспейс не самый быстрый.
думаю java + resin server + oracle будут быстрее.

статься очень полезная. спасибо
Это ничего =)
С опытом зависимость скорости работы ПО от среды разработки пропадает =)
Думаю, там нужна уже какая-то другая архитектура, а не платформа. Если бы архитектура была фиговой, они бы не дошли до 140 миллионов юзеров. Это очень большая цифра и пока ни у кого с динамическим контентом её нет, чтобы померяться членами.
140 млн. это число зарегистрированных юзеров, я так понимаю? Если да, то ета цифра мало что говорит о количестве конкурентных полльзователей. Насколько мне известно, MySapce далеко не на первом месте, по количеству посещений.
Именно на первом. Во ВСЁМ инете.
Судя по самой статье и некоторым другим (http://www.techcrunch.com/2006/12/12/its…), заявление весьма спорное. И уж тем более речь не идет о тотальном превосходстве, которое исключает возможность "померяться письками". :)
На самом деле меряться можно сколько влезет, не об этом речь.
Просто прикольно, что всего _65_ серверов бд обслуживает 140M юзеров. Слов нехватает, чтобы выразить восхищение этими программерами...
По два с копейками миллиона на сервер. 7 слов.
Мне было бы интересно узнать, сколько из этих 140М дубликаты, сколько лежат мертвым грузом, короче, сколько реально юзеров MySpace обслуживает, сколько запросов в секунду, много всяких "сколько", перед тем как начать восхищаться. 140М это больше половины населения США.
Огромное количество инфы по любому. Одна текстовая инфа профилей 2х мильёнов человек будет весить 4 гига (если взять по минимуму, 2кб на рожу). И запись этого юзера будет сказу в ста таблицах с форин кеями и прочим гэ. Какое-то количество из них конечно неактивные, но ведь не 50%, блин. А там ещё и постов навалом (даже если 1 пост в день, по факту конечно больше).
И эту туеву хучу инфы нужно показать! Например ноябрь 2006.
38 700 000 000 - показов
/
65 - серверов
/
30 - дней
=
19 846 153,85 показов в день (или 5 512,82 показов в секунду) обрабатывал один сервер. Учитывая, что даже мерсский DonNetNuke, который почти ничего не умеет по сравнению с myspace, умудряется тормозить бд при ~150 запросах в секунду (проверено HttpLoad'ом на не самом слабом серваке, IIS и MSSQL2005 - разные сервера, 100mbit), то тут уж грех не повосхищаться местными пейсателями!
А мой калькулятор считает так:
19 846 153,85 / 24 / 60 / 60 = 229,7 (показов в секунду) В среднем за сутки естественно.
Вопрос: сколько из этих показов реально приводят к запросу в базу? (при наличии системы кеширования)
1. У тебя неправильный калькулятор :) В смысле я хотел посчитать в минуту, но всё равно ошибся :)
2. А вот этого мы уже на арифмометрах не вычислим :)

Я тут подумал, ведь ТАКОЕ среднее за день нерепрезентативно ни разу. 8 ночных часов из суток можно вообще выбрасывать легко ибо траф на порядок меньше должен быть, да и секунда секунде (равно как и минута минуте) рознь.
Вы конечно же думали именно о "нерепрезентативности", представляя свои вычисления.:)
Мне почему-то кажется, что нагрузка в течение суток распределяется по нормальному закону. Но, честно говоря, меня это не особо волнует.

У меня лично складывается такое впечатление, что кто-то искусственно пытается завысить показатели MySpace. Как будто ребята из бывшей спамерской конторы поставили себе цель обскакать Яху. Вот захожу я к ним и в упор не вижу ничего такого, что заставит меня остаться на сайте еще хоть 10 секунд. Это, конечно, все IMHO.
У какой из нагрузок закон распределения "более нормальный"?
DRIVE.RU
MEMBRANA.RU
Вы не знаете о существовании ямы, Вас это не особо волнует, так с какого это перепугу Вам будут давать ответы по существу, если Ваши вопросы и высказывания к этому существу не имеют отношения?
1. Нормальный закон распределения сам по себе предполагает наличие ямы.
2. Вас никто не заставляет отвечать на мои вопросы. Более того, столь истерический тон Ваших высказываний может отбить любое желание задавать эти самые вопросы.
С этим пожалуйста к жене, подруге, психоаналитику, в центральную прачечную.. но не ко мне.
Да что Вы говорите =)
А что ещё мне срочно надо сделать?

Научитесь связывать причину и следствие, подтренируете память, перестанете писать бестолковые вопросы и вуаля - необходимость обижаться на окружающих отпадёт.
140М зарегистрированых пользователей не значит что их там столько использующих MySpace.
Многие могли зарегистрироваться, зайти раз и все...
И теперь они весят мертвым грузом по серверам СУБД
Вы статью-то читали, которую мы обсуждаем?
Удивлён, что renny с Вами спорит... Какой смысл спорить с человеком, который о предмете спора слышал звон и незнает где он, да ещё рассуждает о вкусе устриц, ни разу их не попробовав.

Смена калькулятора Вам не поможет. Потому что чтобы правильно считать, надо иметь прямые руки и кормить калькулятор правильными данными.
Ответ по существу. Спасибо.
Ответы по существу имеет смысл писать тем, кто даже если не разбирается в вопросе, то хотя бы читает, чего обсуждают.
Вы и не разбираетесь и не читаете.
Java??? Да ладно, вы писали высоконагруженные приложения на Java? Как она любит кушать память... Если не отказаться на Java от всех вкусностей ООП это будет еще тот тормоз...

Дело не в языке или базе данных, дело в грамотной архитектуре.

Выше писали про nginx... Отличный сервер, но если у вас приложение на php со скоростью выполнения 10 запросов в сек, nginx вам не даст абсолютно никаких преимуществ...

Архтитектура и еще раз архитектура...
Да, принимал участие в проектах
Перевод статьи фиговый. Windows Server 2003 падал по описанным (и исправленным) в оригинале причинам, а сайт лежал 12 часов из-за отсутствия питания в датацентре.

Про лимит соединений с MSSQL-сервером просто песня - хотел бы я посмотреть на какой-нибудь SQL-сервер, не имеющий лимита на соединения =)
исправили (+ про блэкаут, + про ложное срабатывание от DoS-атак), спасибо
Да дело-то не в этих недописках. А в том, что вы слишком уж не любите MS =) Писатели оригинала тоже не любят. В итоге и получилось ваше резюме "Неудивительно, что инфраструктура MySpace до сих пор дает сбои. Программное обеспечение Microsoft не выдерживает нагрузки, на которую оно не рассчитано."
Которое к реальности имеет отношения столько же, сколько бахвальство "мы на двух Деллах заставим работать MySpace, дайте только нам использовать не-MS".

Не удивлюсь, если причина была не в MSSQL, а в том, что количество портов для клиентского адреса имеет ограничение в 48к.
.NET провайдер SQLServer для ADO.NET не умеет выбирать для клиентского адреса другой IP. Поэтому, когда количество коннекшенов открывается и закрывается приличное, начинаются проблемы от ограничениями TCP, которые к платформе никакого отношения не имеют и будут проявляться хоть на Linux, хоть на FreeBSD - остальные провайдеры данных (например, DBI в Perl) точно так же не умеют выбирать для клиентского адреса другой IP.
Очевидно, что для воспроизведения этой ошибки понадобится похожее железо - высокая процессорная мощность и высокая производительность сети. На двух CPU и Ethernet 1Гбит я пробовал, не получилось.
А, ещё я забыл добавить, что 48к портов это максимум, сколько можно поставить. По умолчанию на Windows 2003 прописано 4к.
Вот это рост популятности, только успевай добавлять количество серваков, увеличивай мощность каналов и т.п.
Стандартная дилемма в разработки софта: или потратить деньги и время(!) на проектирование системы, чтобы потом её планомерно без авралов масштабировать, или не заморачиваться и быстрее запускаться и ввязываться в бой. Любой из вариантов может быть как проигрышным так и выигрышным. MySpace не парился на длительные обдумывания и запустился. Криво, косо, без дизайна, с глюками, но пенсию основатели себе обеспечили. А кто-то долго все делал круто и красиво и сидет теперь с никому не нужной крутой системой.

Хотя этот промер просто замечательная иллюстрация для выбивания денег с клиентов на нормальное проектирование :)
Интересно: общее число серверов на данный момент не указано, но судя по цифрам "65 серверов баз данный сейчас" и "150 серверов всего до апгрейда", можно предположить что их не больше пары сотен и сейчас. А при таком числе говорить о недостатках архитектуры как-то странно, ибо в сравнении с тем же Гуглом, число серверов которого оценивается в 200 тысяч! (информация, правда, не подтверждённая), и который как теперь оказывается, вовсе не является самым посещаемым сайтом в мире*, это очень мало.
Понятно, что у Гугла нагрузка гораздо выше — ему и индесировать весь интернет нужно и сервисы типа Google Earth наверняка дают нагрузку на одного пользователя намного большую нежели все социально-контентные фичи Myspace вместе взятые. Но всё же факт остаётся фактом: самый посещаемый веб-сайт интернета живёт на менее чем 1000 серверов, в то время как третий (условно, но думаю что врядли кто-то ещё пробрался между Яху и Гуглом) по популярности — на 200 тысячах. Опять же число дата-центов — 1 у Myspace против 23 у Гугла. Странно в таком контексте говорить о неудачном выборе ПО, ой как странно.

* сноска: Кстати, тот факт что Гугл вовсе не является самым посещаемым сайтом в мире опять же был очевиден не сразу, я-то ещё недавно наивно полагал что являясь лидером по поиску (49% запросов в США по сравнению с 23% у Yahoo) он должен лидировать и в общем зачёте, однако поискав инфу и выяснив что у Яху поиск занимает 11% против 49% почты, а у гугла наоборот, 69% против 10%, убедился что поиск далеко не так важен, чем был немало удивлён.
Говорят Google использует не то, что принято называть "серверный компьютер" т.е. не дорогие/надёжные/производительные компьютеры, а более дешёвые и сходные с домашними компы но в больших количествах. Так же говорят, что это позволяет им меньше зависить от конкретных производителей и за меньшие деньги получать большую производительность.
Да, ещё где то писали, что у Google всё сильно индивидуальное т.е. и файловая система и возможно даже ОС подогнанная под их задачи с максимальным быстродействием.
Всё таки продукция MS это универсальные изделия которые никогда не смогут быть так же производительны как узкоспециализированные. Наверняка используй Myspace решения на Oracle и специальную сборку unix у них было бы меньше проблем.
Вы действительно полагаете, что слово "универсальные" тут уместно?:)
Не упоминайте Oracle в суе :) Тем более в контексте более высокой производительности. На тех железках, на которых Oracle нормально работает, можно поставить с десяток MS SQL и с пару сотен MySQL. Да и используй MySpace Oracle им бы Мердок еще на стадии "гаража" потребовался.

Про архитектуру Google.
Я вообще этот очередной наезд в статье на Microsoft оставил без внимания. Одна фраза "Неудивительно, что инфраструктура MySpace до сих пор дает сбои. Программное обеспечение Microsoft не выдерживает нагрузки, на которую оно не рассчитано" чего стоит.

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

Да и замечательно, что SQL 2005 в таких боевых условиях испытывается.
Есть ощущение, что им под эту задачу не то чтобы бесплатно SQL 2005 дали, а еще и доплатили, чтобы испытать таким образом.
Наликом не доплачивали, у Мердока денег хватает )

А вот консультаций бесплатных я думаю они получили на круглую сумму.
Коммерческое использование нерелизов MS запрещено лицензией. Исключение сделали только для VS2005beta.
Так что как-то они договаривались, это однозначно.
Не только для VS2005.

Сейчас многие продукты MSFT на стадии близости к релизу доступны с лицензией Go-Live, позволяющей использование в коммерческих проектах.

Туда же можно отнести и разнообразные программы взаимодействия с различными уровнями ISV a-la TAP, и других форм early adoption programs (вплоть до внутренних соглашений с партнерами).
Когда SQL Server 2005 был бетой, то только для VS 2005.

Про сейчас не знал, спасибо.
Полностью поддерживаю!
Спасибо за интересную статью. Сам собираюсь в скором времени запускать социальную сеть, интересно почитать про ошибки других.

Насчёт технологий Microsoft: не согласен с автором. Я сам работаю веб-разработчиком, ежедневно пишу на ASP.NET, использую MSSQL 2005, раньше довольно долго работал с PHP и MySQL, так что могу утверждать, что для больших проектов PHP не слишком хорошо подходит. Хотя это и моё мнение.
Раз такую тему апнули :)
Почему-то не упоминается Isilon, здесь лежит видео где человек рассказывает о том как они масштабировались, как базу делили, как хранилище выбирали
Isilon много кто использует... у кого деньги есть :)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.