На этой неделе наша компания появится в телешоу в прайм-тайм, и нам сказали, что на нашем сайте можно ожидать около 200 000 посетителей одновременно.
Обычно мы получаем около 100 посещений в день, поэтому я не знаю, сможем ли мы справиться с таким большим трафиком. Мы организовано 1and1.co.uk
.
Есть ли какие-либо меры предосторожности, которые мы можем предпринять, чтобы предотвратить искажение нашего сайта?
web-hosting
traffic
visitors
downtime
SamTheMan
источник
источник
Ответы:
В период высокой посещаемости ваш сервер должен иметь возможность обрабатывать все запросы посетителей вашего сайта. Но есть некоторые ограничения в одновременных соединениях, обрабатываемых сервером. Поэтому лучше всего обслуживать запросы страниц как можно быстрее.
Вот несколько предложений для рассмотрения в этих ситуациях,
Улучшения уровня приложения:
1. Минимизируйте HTTP-запросы для ускорения загрузки страниц.
а) Объедините все файлы JS вместе в один объединенный файл JS, и все файлы CSS в один объединенный файл CSS.
б) Сократите файлы JS и CSS, чтобы уменьшить размер файла и ускорить его загрузку.
в) Использование CSS-спрайтов - когда вы объединяете большинство или все ваши изображения в спрайт, вы превращаете несколько запросов изображений в один. Затем вы просто используете CSS-свойство background-image для отображения нужного вам фрагмента изображения.
г) задерживать загрузку изображений с отложенной загрузкой, это будет полезно для уменьшения http запросов.
2. Подготовьте легкие страницы, которые ожидают больше посещений:
а) по возможности исключайте декоративные элементы, такие как изображения или Flash; используйте текст вместо изображений в навигации по сайту и в Chrome и поместите большую часть контента в HTML.
б) использовать статические HTML-страницы, а не динамические; последнее увеличивает нагрузку на ваши серверы. Вы также можете кэшировать статический вывод динамических страниц, чтобы уменьшить нагрузку на сервер.
Улучшения на уровне сервера:
1. Сократите значения времени ожидания сервера , проконсультировавшись с вашим хостинг-провайдером (не должно быть слишком низким).
Когда тайм-ауты будут меньше, соединение будет вскоре освобождено, поэтому сервер сможет обрабатывать больше соединений.
2. Используйте сторонние сервисы, такие как CloudFlare, для статического кэширования данных и для защиты вашего сайта от злонамеренных пользователей и атак, таких как DDOS.
3. Обновите серверное оборудование. Обновите физическую и виртуальную память, увеличьте, если необходимо, ограничения процессов ввода-вывода и ввода. Ваш хостинг провайдер сможет помочь вам лучше.
4. Кэшируйте динамический код - используйте APC для кэширования кода операции PHP.
5. Балансировка нагрузки. Распределите нагрузку между несколькими серверами балансировки нагрузки.
Когда все необходимые действия будут предприняты, пришло время проверить, готов ли сайт к огромному скачку трафика.
Есть некоторые сторонние сервисы, такие как loadimpact.com, которые предоставляют нагрузочное тестирование с имитацией трафика. Анализ поможет вам понять, какую нагрузку может выдержать ваш веб-сайт и что можно улучшить.
Кроме того, в период всплеска трафика избегайте операций с высокой загрузкой ЦП, таких как резервное копирование веб-сайтов и т. Д.
источник
Прежде всего, я бы порекомендовал Cloudflare. Вы можете создать бесплатную базовую учетную запись, и она будет направлять трафик через локальные центры обработки данных, чтобы минимизировать количество серверных переходов. Cloudflare также отлично подходит для кэширования контента и имеет защиту от DDOS.
Кроме этого, попробуйте обрезать жир с вашего слоя обслуживания. Убедитесь, что у вас нет чрезмерно раздутых запросов к базе данных, которые являются узким местом в вашем коде, или какая-либо логическая нагрузка на процессор, которую можно упростить.
Также попробуйте кешировать любые запросы к базе данных. Некоторые отличные варианты для кэширования запросов - Redis или Memcache. OpCaching - еще одно соображение, если вы используете некомпилированный язык.
Но, пожалуй, самое главное, чтобы ваш статический контент (например, CSS, JS и изображения) был максимально оптимизирован. Сократите все ваши Javascript, объедините их все в один файл, если это возможно. Помните, что каждый файл, который входит в ваш сайт, должен сделать несколько прыжков на сервере, чтобы добраться до конечного пользователя.
Не стоит недооценивать, сколько пропускной способности и времени загрузки вы можете сэкономить за счет сжатия изображений!
Наконец, рассмотрим мониторинг производительности с помощью таких инструментов, как New Relic.
Удачи!!
Источник: Один из разработчиков 12-го по популярности сайта в Великобритании по версии Alexa.
источник
Подумайте о нагрузочном тестировании вашего сайта. Доступны бесплатные инструменты, такие как JMeter , The Grinder и Gatling , которые могут симулировать большое количество посетителей вашего сайта.
Проверяя влияние интенсивного трафика заранее, вы можете определить, была ли эффективна любая настройка, которую вы сделали, и посмотреть на дальнейшую настройку, если нет.
источник
Если вы на 1and1, скорее всего, вы ищете дешевый хостинг. Дешевый хостинг означает, что вы склонны делать все под одной коробкой. Основная проблема хостинга заключается в том, что когда вы размещаете все в одной коробке, вы распределяете ресурсы между важными частями вашего сайта:
И, будучи 1 и 1, есть большая вероятность, что вы используете панель управления, такую как Plesk или cPanel, что означает, что у вас есть дополнительный слой вещей, конкурирующих за ресурсы. И последний гвоздь в твоем гробу? У вас нет много ресурсов. У вас может быть 1 процессор (или виртуальный процессор) и очень мало оперативной памяти (если у вас больше 2 ГБ, я буду удивлен).
Когда мы отказались от 1and1, мы пошли с масштабируемым хостинг-провайдером (в нашем случае Amazon Web Services) и сделали несколько вещей, которые раньше не могли
AWS не единственная игра в городе (Azure, Rackspace и т. Д.), Но убедитесь, что 1 и 1 могут масштабироваться в соответствии с вашими требованиями.
источник
Проверьте с вашим провайдером и посмотрите, есть ли ограничение на пропускную способность. Обновите свой хостинг-план, если пропускной способности недостаточно для ожидаемого объема трафика. Вы не хотите показывать сообщение «Предел пропускной способности превышен» вашим посетителям.
источник
Из своего личного опыта я знаю, что даже у лучших VPS есть свои ограничения. Я собираюсь настоящий непрофессионал здесь.
Один из наших спортивных сайтов был размещен на VPS. Во время матча между Пакистаном и Индией мы получили более 70 000 просмотров. У нас был Inmotinghosting VPS с 4 ГБ оперативной памяти и частотой 2 ГГц, полосой пропускания 1 ТБ, хранилищем SSD и другими модными штуками. У нас также была активирована платная версия Cloudflare.
Прошел только половину матча, и сайт закрылся. Он так и не появился во время матча, и мы потеряли потенциально более 70 000 посетителей. Позже мы знали, что наша пропускная способность была использована, и без исходного хоста CDN в большинстве случаев бесполезен.
Урок: наряду с получением VPS и настройкой CND, такой как Cloudflare, минимизируйте размер своей страницы. Чем меньше, тем лучше. Вы можете использовать кэширование страниц и минимизацию кода, что очень удобно при обработке трафика.
источник
Вы не очень хорошо определили «все сразу». Допустим, вы просматриваете 200 000 уникальных посетителей за полчаса. Это 111 запросов в секунду, без учета посетителей, которые просматривают и открывают больше страниц (что вам нужно, верно?).
Первое, что я хотел бы сделать, - это истории Google о людях, которые обрабатывают одинаковое количество трафика. Многие люди напишут о своем опыте в своих блогах, чтобы помочь другим. Вы заметите, что крайне сложно найти историю о ком-то, кто делает это на виртуальном хостинге, и для этого есть причина. Для начала посмотрите на такие решения, как Digital Ocean или Amazon Web Services, используя ближайший к вашей аудитории центр обработки данных. И я согласен, что выгрузка всех ваших статических ресурсов в CloudFlare, даже бесплатную учетную запись, является отличной идеей.
Кроме того, протестируйте свой код, добавив временные сценарии вверху и внизу своих страниц, предполагая, что они динамические. Если предположить, что мои предположения о числах верны, вам нужно будет обслуживать каждую страницу менее чем за 10 миллисекунд, чтобы поддерживать любой приемлемый уровень производительности. Если вы обслуживаете все запросы через SSL по умолчанию, отключите его на пару дней, пока пройдет шторм.
Кроме того, 200 000 звучит очень страшно, но имейте в виду, что вам не нужно слишком бояться (хотя вы должны быть, немного). Например, когда журнал Paper опубликовал фотографии Ким Кардашьян в NSFW, для этой нагрузки потребовалось всего четыре веб-сервера среднего размера и Amazon ELB, согласно этой статье (SFW). Я определенно не думаю, что ваша текущая установка справится с этим, но вам точно не нужно шестнадцать веб-серверов с 48 ядрами, каждый из которых оснащен собственным маленьким ядерным генератором.
источник
Знайте этот старый, но очень хороший вопрос и жаль, что у меня не было хорошей информации по этому вопросу несколько лет назад ...
Время от времени у нас есть (связанные со школьной деятельностью) сайты, размещаемые в телевизионных сетях. Поскольку мы работаем с очень ограниченным бюджетом, решение проблемы - «балансировка нагрузки». Ящики VPS могут быть довольно дешевыми в наши дни, и мы просто отражаем / дублируем наш контент на 2-3 из них.
Посмотрите на эту статью и прочитайте о "круговом".
Более подробную информацию о нагрузочном тестировании можно найти здесь .
Когда мы впервые начали пытаться обрабатывать пики, мы просто поместили наш контент на 2-3 ящика VPS и поместили их NS в настройки регистратора.
источник
Лучше всего иметь выделенные серверы с несколькими кластерами, чтобы решить вашу проблему
источник
Удачи в переписывании вашего сайта, смене провайдеров и переносе контента в CDN менее чем за неделю.
Как вы, возможно, поняли из других ответов, это минимальные вещи, которые вам нужно сделать, чтобы ваш сайт был готов к значительному увеличению трафика. Хотя если вы в настоящее время используете 1and1.co.uk, у вас, вероятно, нет сильной команды сетевых инженеров, администраторов баз данных, программистов и оптимизаторов внешнего интерфейса, работающих на вас.
Это вряд ли произойдет, не так ли?
Вы не сказали, что вы делаете со своим сайтом, запускает ли он корзину покупок или может ли он быть реализован со статическим контентом. Если последнее так, то вы можете просто пережить цунами, если вы соберете весь сайт в статические файлы и опубликуете их вместо обычного сайта (сначала сделайте резервную копию текущей версии).
Вы также должны говорить с 1and1 (с вашей кредитной картой в руке).
источник