Jak lub kiedy wiem, że moja aplikacja internetowa nie obsługuje ruchu/działań i nie wyświetla strony typu "Wala wieloryb"?Kiedy pokazać nieudany wieloryb?
Odpowiedz
Możesz spróbować sys_getloadavg(), jeśli chcesz pokazać błąd, gdy serwer znajduje się pod dużym obciążeniem.
<?php
$load = sys_getloadavg();
$max_load = 95;
if($load[0] >= $max_load){
// Show failwhale
}else{
// Do stuff
}
?>
To całkiem dobre rozwiązanie. Wykonaj testy obciążeniowe serwera, aby dowiedzieć się, jaki rodzaj obciążenia może obsłużyć, aby dać ci pojęcie o tym, jaki jest twój maks. – Endophage
Tak. Ten jest dobry. Teraz zastanawiam się, jak uzyskać ideę maksymalnej wartości? W każdym razie dzięki @Joseph W – ptamzz
Jeśli twój serwer nie jest w stanie uzyskać prawidłowej odpowiedzi z innego ważnego serwera, czy jest to kluczowa usługa internetowa, serwer uwierzytelniający, serwer bazy danych itp., Wydaje się, że jest to dobry czas na coś takiego, jak niepowodzenie wieloryba.
Ponieważ trzeba by spojrzeć na różne problemy, powiedziałbym początek na obsługę błędów:
http://www.php.net/manual/en/book.errorfunc.php
zajrzeć do dokumentacji dostawcy bazy danych połączenia użytkownika (takich jak zbyt wielu połączeń); tutaj jest MySQL:
http://php.net/manual/en/function.mysql-error.php
http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html
Zakładając, że serwer może odpowiedzieć na obciążenia (a użytkownik nie dostaje timeout 408 życzenie), powinno to być coś wykrywalne w kodzie, nie coś nie tak na obwodzie samego serwera (na przykład serwer z pamięci). Możesz również mieć inne limity czasu, na przykład usługę sieciową, która reaguje powoli lub nie.
Ponadto, jeśli zorientujesz się, rzuć linię do zespołu Facebooka.
To jest coś, o czym rozmawiałem wcześniej z kolegami. Nie można przewidzieć, kiedy ruch będzie zbyt wysoki. W końcu serwer zostanie po prostu przewrócony. Potencjalnie możesz uruchomić serwer ze stroną "fail whale" i przełączyć się na twoją stronę operacyjną. Jeśli serwer przejdzie pod obciążeniem, może automatycznie wrócić do strony "niepowodzenie".
Twój serwer nie może już obsługiwać ruchu, gdy się nie powiedzie ... to jest problem związany z identyfikacją. Odpowiedź Matt V będzie działała, ale trzeba by było dodać jakiś test bicia serca i nadal byłby to proces ręczny, który przerywałby odpowiedź "OK".
W pewnym sensie nie zgadzam się; –
@Jared Farrish Jaką? Nie opuszczaj mnie tak ciekawie ... – Endophage
Ups. Powiedziałem, że nie sądziłem, że Twitter pokazuje niepowodzenie wieloryba z powodu problemu typu DOS (co jest zrozumiałe, trudne do udzielenia odpowiedzi), ale dlatego, że Ruby nie był "wystarczająco wytrzymały", aby poradzić sobie z obciążeniem . Jak wskazałem, jeśli serwer nie odpowiada lub odpowiada, ale nie może się z nim połączyć, jest to trudny problem. Jednak w kontenerze serwera mogą wystąpić inne problemy, które mogą pożyczyć je, aby pokazać "błąd witryny", ponieważ niektóre odzyskiwanie trwa (nawet jeśli Apache odpowie, jeśli serwer nie działa poprawnie). Jednak trafię dodać komentarz przez pomyłkę. –
- 1. jQuery Ajax POST nieudany
- 2. Ponownie uruchom ostatni nieudany test w PHPUnit
- 3. Jak zarejestrować nieudany test Mocha na obietnicy
- 4. genymotion błąd zainstalować nieudany procesor api niekompatybilny
- 5. W Zakupach aplikacji w systemie Android: Nieudany zakup
- 6. Jak uzyskać status "Wyrażenie wyrażeń", udany lub nieudany?
- 7. baner nie pokazać się
- 8. Skrypt, aby pokazać postęp?
- 9. Skimage: jak pokazać obraz
- 10. ggplot2: jak pokazać legendę
- 11. wiadomość CustomValidator robi pokazać się
- 12. Jak pokazać dzielnik między przedmiotami?
- 13. Ctrl + T, aby pokazać klasę
- 14. Jak pokazać tekst bengalskiego prawidłowo
- 15. Jak pokazać, co zrobił commit?
- 16. Skąd Szyny pokazać wyjście rejestrowania
- 17. jak pokazać MessageBox w MVVM
- 18. Usuń link idzie, aby pokazać metodę
- 19. Korzystanie CGridView pokazać atrybuty kolejny model w
- 20. Logowanie Twitter, aby pokazać się błąd „android.os.NetworkOnMainThreadException”
- 21. trzeba pokazać SQLite kwerendy w porządku malejącym
- 22. ExtJS - Jak pokazać combobox w kolumnie siatki
- 23. Jak pokazać relacje w Enterprise Architect
- 24. jquery.tweet.js plugin nie działa, jak pokazać tweety
- 25. Jak obudzić Androida i pokazać aktywność?
- 26. Primefaces pokazać animacji, gdy przycisk kliknięciu
- 27. Dopasuj mapę, aby pokazać świat zawsze
- 28. jak pokazać odliczanie uilabel w iphone?
- 29. Jak korzystać Flowplayer pokazać filmy z YouTube
- 30. Regularne aktualizowanie Android TextView, aby pokazać odliczanie
Wolę nazywać to octokatem. –
To prawdopodobnie więcej problemów z serwerem niż problemów z kodem. –