2013-09-26 6 views
1

Я просмотрел несколько сайтов, на которых выводится сообщение о том, что они «перегружены». Не знаю, связано ли это с подключением к БД.Проверка наличия перегрузки сайта

Это делается программно? Или через настройку сервера?

+1

И мы должны знать, как каждый сайт это делает? Возможно, есть сайт «areyouoverloaded.com», который фунт на сайтах, пока они не перестанут отвечать, и в этот момент они отправляют письмо через почту приоритета USPS, чтобы уведомить администраторов сайта о том, что они должны войти в систему и изменить свою страницу на перегруженные версия. Или, возможно, есть некоторый код, который отслеживает длительность обычного SQL-запроса и автоматически переключается на перегрузку, когда время выполнения превышает 0,5 с. –

+2

Извините, что у вас плохой день @Marc B, и я не знал, что я нахожусь здесь на минном поле. Я просто задаю простой вопрос. Теги должны давать достаточно контекста. Если нет обычного способа сделать это, просто скажите это. –

+1

Это немного странный вопрос для пользователя с вашим профилем, вы не думаете? Это помогло бы, если бы вы могли привести пример. – samayo

ответ

4

Вообще говоря, обычно это будет установка балансировки нагрузки, а не то, что вы вводите непосредственно в приложение. Балансировщик нагрузки иногда проверяет работоспособность ваших серверов для вашего сайта и направляет трафик на другой сервер/сайт, если обнаруживает, что они недоступны или имеют высокую задержку и т. Д.

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

Edit: Чтобы расширить немного о том, как это делается с помощью балансировки нагрузки, вы, как правило, имеют страницы в вашем приложении, которое запускает основные проверки и возвращает HTTP 200, если все в порядке, или HTTP 503, если все не в порядке. Затем балансировщик нагрузки ударил этот URL-адрес на вашем сервере и проверил код ответа, чтобы узнать, вверх ли он или нет (как часто он проверяет - это то, что вы можете настроить). Если все закончится, круто. Если он не работает, он начнет отправлять трафик в другом месте.

Поскольку вы контролируете страницу проверки, вы можете написать чек (ы), как хотите. Обычно у вас просто есть несколько быстрых проверок. например Попробуйте подключиться к своей базе данных, если она дает ошибку «слишком много подключений», а затем возвращает 503, а балансировщик нагрузки будет знать, что вы перегружены.

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

try 
{ 
    $dbh = new PDO("mysql:host=localhost;dbname=whatever", $user, $pass); 
} 
catch (PDOException $e) 
{ 
    header("Location: /site_overloaded_message.html"); exit(); 
} 
+1

Это имеет смысл. –

Смежные вопросы