Пропускная способность тяжелого сайта ... использовать совместное местоположение?

11

Я работаю над сайтом, который, вероятно, будет очень загруженным. Основная функция сайта при активном использовании может использовать скорость до 1 Мбит / с за один сеанс. К счастью, как только пользователи преодолеют новый игрушечный фактор, использование этой функции, вероятно, будет составлять 1-5% или меньше (возможно, намного меньше) времени сеанса.

Тем не менее, новые пользователи, скорее всего, поиграют с этой функцией, особенно при запуске. Я очень обеспокоен использованием полосы пропускания.

Это более или менее нишевый рынок, поэтому мне никогда не понадобится переходить на сумасшедшие уровни, такие как YouTube. Однако вполне возможно, что это будет пара терабайт / месяц.

Является ли совместное размещение моим лучшим вариантом? Какие дешевые услуги полосы пропускания (колокейшн / хостинг / облачный сервис / что угодно) существуют?

Darron
источник
Какую пропускную способность мы на самом деле говорим (пиковые), это определяет уровень вашей приверженности, что сильно влияет на то, является ли коло хорошей идеей или нет (учитывая, что 95% биллинга довольно распространено)
Тим Пост
1
Хорошо, я думаю, что склоняюсь к установлению жесткого ограничения в 10 Мбит / с. Я могу иметь ограниченную бета-фазу. Я бы начал с широко открытого и переключился на ограниченный предварительный просмотр учетных записей, если меня затопят. Это должно работать.
Даррон
Очень любопытно, какой тип динамического контента вы генерируете, для загрузки которого требуется 1 Мбит / с! Живое видео? В любом случае вы можете проверить этот связанный вопрос: serverfault.com/questions/148629
Грег Брей,

Ответы:

6

Многое будет зависеть от того, сколько одновременных сессий вы ожидаете. Если возможно более нескольких одновременных сеансов, вам понадобится что-то, что предоставит вам 100 Мбит соединение, 1 Гбит, если вы ожидаете более 50.

Это также будет зависеть от того, какого рода устойчивость вам требуется - если у вас должны быть гарантии работоспособности и другие SLA и / или отказоустойчивые системы для управления в случае возникновения проблемы (поскольку проект достаточно важен для короткого периода простоя) быть смущающим), тогда ваши варианты более ограничены, и ваши расходы будут выше.

Если вы можете отделить большие данные от остальной части приложения, вам не нужно перемещать все в новое решение для хостинга. Например, если элементы с большой пропускной способностью - это видеофайлы, вы можете арендовать выделенный сервер с хорошей пропускной способностью и разместить их на нем - вы можете получить серверы на хороших хостах с приличной пропускной способностью и соединениями со скоростью 100 Мбит + в наши дни на удивление дешево (я плачу $ 50 / месяц для небольшого сервера с 10-мегабайтным каналом, который я мог бы насыщать в обоих направлениях 24/7, если бы мне было нужно, поэтому 100-мегабитный канал с подключенным более мощным сервером не будет дорогостоящим, если вам не требуется гарантированное время безотказной работы и другие SLA и / или сервер управление от хостинг-провайдера). Если сервер просто обслуживает статические файлы (даже большие), вам не нужно много машин с точки зрения процессора и оперативной памяти, только быстрые диски и пропускная способность. Возможно, стоит также взглянуть на «облачные» решения или сеть доставки контента - их будет легче масштабировать, если вы не догадаетесь, какая необходимая вам пропускная способность в теории гораздо более устойчива (так что вы можете получить приличную гарантию работоспособности). с компенсацией, если они не соблюдают этот SLA). Разделение действия захвата полосы пропускания таким образом дает дополнительное преимущество, заключающееся в том, что, если функция высокой пропускной способности действительно привлекает достаточно внимания для сканирования, она не будет блокировать все остальные функции одновременно.

Дэвид Спиллетт
источник
Нет SLA, нет сумасшедших требований по времени безотказной работы. В настоящее время он использует приличный кусок CPU / RAM на сессию. Однако один сложный блок должен обрабатывать большое количество одновременных сеансов.
Даррон
1

Исторически сложилось так:
В те времена, когда еще не было игр на Facebook, люди были все в браузерных текстовых ММО.

Относительно новым был Ogame. Это было графическое изображение и система карт, состоящая из 9 раз по 999 страниц (9 вселенных с 999 секторами с местом для 15 планет каждая, и на каждой планете могла быть луна).

Количество присоединяющихся пользователей было безумным, а количество трафика тем более.

Так что они сделали, чтобы решить это? Они начали использовать систему шаблонов PHP и позволяли пользователям самим размещать изображения и CSS-файлы. Все, что вам нужно было сделать, это установить флажок и ввести абсолютный путь к базовой папке. Они сохранят это в своей базе данных, используют <base>элемент HTML и система шаблонов установит URI из http: // path / to / image to file: /// path / to / image

После этого все ссылки img могут остаться прежними. Ничего не нужно было скачивать, потому что у пользователей это уже было. Это означает более быструю загрузку страниц для пользователя (что означает более качественные обзоры продуктов), а также более низкое использование полосы пропускания для компании, размещающей сайт.

И в качестве дополнительного бонуса они продали его как «создавая собственные фоны и изображения, разве мы не хорошие парни, которые позволили вам сделать это?»

KdgDev
источник
1

У нас есть сайт с высоким трафиком, и на каждой странице загружено много фотографий. У нас есть выделенные серверы, но мы решили разместить картинки на Amazon S3 . Похоже, вы говорите о видеофайлах или о каком-то другом типе больших файлов, который, я думаю, все еще будет применяться здесь. Вот некоторые плюсы и минусы (для нас)

Pros

  • На наших серверах требуется меньше дискового пространства
  • Меньшая пропускная способность для наших серверов
  • Наши файлы журналов значительно меньше
  • Мы можем легко интегрировать его с Amazon CloudFront, чтобы сделать загрузку еще быстрее для посетителей

Cons

  • Это стоит немного дороже. Мы могли бы сэкономить немного денег, имея их на наших собственных серверах
  • Меньше контроля над ними (Амазонкой) идет вниз ... к счастью для нас, они на самом деле не идут вниз. :)

другие мысли

Если речь идет не о медиафайлах или загрузках больших файлов, мой ответ и некоторые другие могут не иметь смысла. Дайте нам больше деталей, и мы сделаем все возможное, чтобы помочь.

Микки Маккуэйд
источник
0

Похоже, что вам нужно взглянуть на CDN, такой как Amazon Cloudfront .

Ознакомьтесь с этими вопросами для обсуждения использования CDN:

artlung
источник
Коло может на самом деле иметь больше смысла, если он может оправдать минимальный коммит (обычно 5 Мб) биллингом 95-го процентиля. Это означает, что он никогда не собирается платить за верхние 5% пиков, которые в итоге оказываются дешевле, чем сторонние CDN. Трудно сказать, нам действительно нужно точно знать, сколько он использует.
Тим Пост
Я использую почти полностью динамический контент с большой нагрузкой на процессор / память за сеанс. После игры с инструментом оценки цен AWS, кажется, намного дешевле пойти с колокейшн.
Даррон
Ах, я предполагал, что тяжелые фрагменты полосы пропускания будут носителями, которые вы можете поместить в CDN, звучит так, как будто я ошибся. Хотя, если у вас есть динамические чанки, которые обрабатываются предсказуемым образом (конечный набор возможных «чанков» данных), вы все равно можете поместить все это в CDN. Я перестану пытаться угадать ваше приложение сейчас. :-)
artlung
0

В зависимости от целевого государства / страны (или мира) я бы использовал много кластерных («облачных») решений в разных местах (сети локации должны быть равноправными ;-)). С одной стороны, у вас есть полный контроль над вашей CDN, но с другой стороны у вас много работы (например, мониторинг, забота о программной и аппаратной инфраструктуре и многое другое).

Так что «управляемые» решения вроде AWS или что-то в этом роде. Существует много провайдеров CDN / Cloud, которые предоставляют широкий спектр функций.

OFFTOPIC: взгляните на Puppet [1] :-)

[1] http://www.puppetlabs.com/

fwaechter
источник
0

Да, вы должны использовать Amazon AWS что-то подобное.

user4801
источник