Как и когда я знаю, что мое веб-приложение не может обрабатывать трафик/действия и показывать страницу «Fail Whale»?Когда показывать неудавшегося кита?
ответ
Вы можете попробовать sys_getloadavg(), если хотите просто показать ошибку, когда сервер находится под большой нагрузкой.
<?php
$load = sys_getloadavg();
$max_load = 95;
if($load[0] >= $max_load){
// Show failwhale
}else{
// Do stuff
}
?>
Это довольно хорошее решение. Проведите некоторое стресс-тестирование сервера, чтобы узнать, какую нагрузку он может обработать, чтобы дать вам представление о том, что такое ваш макс. – Endophage
Да. Это хороший. Теперь мне интересно, как получить представление о максимальном значении? В любом случае Спасибо @ Joseph W – ptamzz
Если ваш веб-сервер не может получить действительный ответ от другого важного сервера, будь то ключевой веб-сервис, сервер аутентификации, сервер базы данных и т. Д., Это похоже на хорошее время для чего-то вроде кита.
Так как вам нужно будет искать различные вопросы, я хотел бы сказать, старт при обработке ошибок:
http://www.php.net/manual/en/book.errorfunc.php
Посмотрите в документации подключения вашего поставщика баз данных (например, слишком много соединений); здесь MySQL:
http://php.net/manual/en/function.mysql-error.php
http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html
Предположим, что ваш сервер может реагировать на нагрузку (и пользователь не получает тайм-аут запроса 408), это должно быть что-то обнаружить в коде, не что-то не так в пределах периметра самого сервера (например, сервер вне памяти). Вы также можете иметь другие таймауты, например, веб-службу, которая медленно реагирует или что-то еще.
Кроме того, если вы выясните, отбросьте линию в команду Facebook.
Это то, что я обсуждал с коллегами в прошлом. Вы не можете предсказать, когда трафик будет слишком высоким. В конце концов вы сервер просто упадет. Потенциально вы могли бы запустить сервер с страницей «fail whale» и переключиться на свой рабочий сайт. Затем, если ваш сервер упал под нагрузкой, он может автоматически вернуться на страницу «сбой».
Ваш сервер больше не может обрабатывать трафик, когда он терпит неудачу ... вот где трудность заключается в идентификации. Ответ Matt V будет работать, но вам нужно будет добавить какую-то проверку пульса, и все равно будет ручной процесс прерывания ответа «OK».
В некотором смысле я не согласен; –
@ Jared Farrish Как так? Не оставляйте меня таким любопытным ... – Endophage
Упс. Я действительно собирался сказать, что я не думал, что Twitter показал неудачу кита из-за проблемы типа DOS (что, понятно, трудно ответить), а потому, что Ruby не был достаточно «прочным» для обработки нагрузки , Как я уже говорил, если сервер не может ответить или отвечает, но не может пройти, это сложная проблема. Но в контейнере сервера могут возникнуть другие проблемы, которые могут предоставить им «ошибку сайта», поскольку некоторое восстановление продолжается (даже если Apache отвечает, если сервер работает неправильно). Тем не менее, я ударил добавить комментарий по ошибке. –
- 1. Подробнее Ошибка веб-кита
- 2. VB.net обнаружение неудавшегося HttpWebRequest
- 3. Пользовательская кнопка прокрутки веб-кита
- 4. Запуск команды из неудавшегося шага
- 5. Что вернуть из неудавшегося метода и когда бросить?
- 6. Python деструктор для неудавшегося конструктора
- 7. junit, получить имя неудавшегося метода
- 8. Ответственный заголовок со странной ошибкой веб-кита
- 9. Возможная ошибка веб-кита с переходами CSS3
- 10. Рендеринг веб-кита в текстуру GL
- 11. Почему эта анимация веб-кита выглядит отрывочно?
- 12. Как получить значение неудавшегося запроса в диспетчере?
- 13. Как захватить stacktrace и исключение неудавшегося шага
- 14. Как откат неудавшегося InsertOnSubmit? (VB.NET LINQ)
- 15. Как обеспечить контекст неудавшегося утверждения в mocha
- 16. Когда показывать 404 против 301?
- 17. Показывать div, когда внизу страницы
- 18. Показывать сообщение, когда ячейка пуста
- 19. Показывать ссылку, когда таймер заканчивается
- 20. Показывать ProgressDialog, когда uithread спит?
- 21. C# Красивых строки прецедент для неудавшегося случая
- 22. Maven резюме из неудавшегося проекта на Jenkins
- 23. Поиск источника неудавшегося статического утверждения на Eigen
- 24. Запуск только неудавшегося теста в IntelliJ IDEA
- 25. Как переопределить поведение неудавшегося тестового примера JUnit
- 26. Страница пользовательской ошибки для неудавшегося приложения Инициализация
- 27. Как не показывать пробел, когда скрывать/показывать панель действий?
- 28. Нежелательная прокрутка при перетаскивании в браузерах веб-кита
- 29. Начать/Остановить анимацию веб-кита onclick, а не на: hover
- 30. Показывать рекламу, когда пользователь не в сети
Я предпочитаю называть его октокатом. –
Возможно, это скорее проблема сервера, чем проблема с кодом. –