Как я могу обнаружить и выжить, будучи "Slashdotted"? - PullRequest
47 голосов
/ 20 октября 2008

Какой хороший способ выжить в условиях аномально высоких пиков трафика?

Я думаю, что по какой-то причине мой веб-сайт должен временно переключиться в режим «низкой пропускной способности»: переключиться на базовые HTML-страницы, минимальную графику, отключить виджеты, которые могут создать ненужную нагрузку на базу данных, и т. Д.

Мои мысли:

  • Мониторинг загрузки процессора
  • Пропускная способность монитора
  • Мониторинг запросов / минута

Редактировать: Я знаком с такими опциями, как кэширование, переключение на статический контент или сеть доставки контента и т. Д. В качестве средства для выживания, поэтому, возможно, следует сосредоточиться на том, как обнаруживать, когда сайт собирается стать перегруженным. (Хотя ответы на другие методы выживания, конечно, все же приветствуются.) Допустим, веб-сайт работает под управлением Apache на Linux и PHP. Это, вероятно, самая распространенная конфигурация, и она должна позволить максимальному количеству людей получить помощь от ответов. Предположим также, что дорогие варианты, такие как покупка другого сервера и балансировка нагрузки, недоступны - по крайней мере, для большинства из нас упоминание о Slashdot будет случайным явлением, а не чем-то, на что мы можем потратить деньги, готовясь к .

Ответы [ 30 ]

0 голосов
/ 17 сентября 2008

Никто не упомянул балансировку нагрузки ... haproxy и т. Д. Оптимизация, кеширование и балансировка нагрузки должны выдержать практически все. При этом, я не уверен, что stackoverflow находится позади балансировщика нагрузки;)

0 голосов
/ 17 сентября 2008

Я знаю, что с Digg вы можете связаться с ними и попросить, чтобы они занесли ваш сайт в черный список. Вы, вероятно, можете сделать то же самое с Slashdot.

0 голосов
/ 17 сентября 2008

Убедитесь, что все создаваемые вами страницы статичны, без базы данных и не используют изображения.

На самом деле, это место не так уж плохо.

0 голосов
/ 17 сентября 2008

Данные кеша.

Ненужные поездки в базу данных для отображения того, что отображается одинаково при каждой загрузке - это то, что убивает сервер. Запишите его вывод в файл и используйте его вместо этого. Большинство CMS и фреймворков имеют встроенное кэширование (но вы должны включить его), но развертывание собственного - не самая сложная задача.

0 голосов
/ 17 сентября 2008

Автоматическое перенаправление на Coral CDN, если только запрос не поступил от кораллового CDN.

0 голосов
/ 17 сентября 2008

Есть несколько способов, которыми это можно сделать или хотя бы помочь. Поищите в Google «slashdot-proof», и вы найдете их несколько:

и т.д.

0 голосов
/ 20 октября 2008

Убедитесь, что ваши страницы поддерживают заголовки Last-Modified & If-Modified-Since и / или ETag & If-None-Match. С их помощью вы можете избежать многих вычислений и переводов полностью.

Поиск HTTP условного GET для получения дополнительной информации.

0 голосов
/ 17 сентября 2008

.htaccess:

RewriteEngine on
RewriteCond %{HTTP_REFERER} slashdot\.org [NC]
RewriteRule .* - [F]
0 голосов
/ 20 октября 2008

Насчет выживания вы правы: переключите или перенаправьте ссылку с косой чертой на статическую HTML-страницу без графики. Возможно, вы даже захотите разместить эту страницу на другом веб-сервере, чтобы ваш исходный сервер не слишком загружался.

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

Но как это обнаружить, это я тоже хотел бы знать! Простого подсчета попаданий за последние несколько секунд может быть недостаточно?

0 голосов
/ 17 сентября 2008

Одно слово: Книпекс

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