Nie mam żadnego punktu odniesienia, jeśli chodzi o to, co jest uważane za „szybkie”; Zawsze się nad tym zastanawiałem, ale nigdy nie znalazłem prostej odpowiedzi ...
Nie mam żadnego punktu odniesienia, jeśli chodzi o to, co jest uważane za „szybkie”; Zawsze się nad tym zastanawiałem, ale nigdy nie znalazłem prostej odpowiedzi ...
Odpowiedzi:
Wydaje się, że OpenStreetMap ma 10-20 na sekundę
Wikipedia wydaje się mieć od 30000 do 70000 na sekundę na 300 serwerach (od 100 do 200 żądań na sekundę na maszynę, z których większość to pamięci podręczne)
Geograph otrzymuje 7000 obrazów tygodniowo (1 przesyłanie na 95 sekund)
Nie jestem pewien, czy ktoś jest nadal zainteresowany, ale ta informacja została opublikowana na Twitterze (i tutaj ):
Statystyki
- Ponad 350 000 użytkowników. Rzeczywiste liczby są jak zwykle bardzo super tajne.
- 600 żądań na sekundę.
- Średnio 200-300 połączeń na sekundę. Wzrost do 800 połączeń na sekundę.
- MySQL obsługiwał 2400 żądań na sekundę.
- 180 instancji Rails. Używa Mongrel jako serwera „sieciowego”.
- 1 serwer MySQL (jeden duży 8-rdzeniowy box) i 1 slave. Slave jest tylko do odczytu w celach statystycznych i raportowania.
- Ponad 30 procesów obsługi dorywczych zadań.
- 8 Sun X4100s.
- Przetwarzaj żądanie w Railsach w 200 milisekund.
- Średni czas spędzony w bazie danych to 50-100 milisekund.
- Ponad 16 GB pamięci memcached.
Kiedy przechodzę do panelu sterowania mojego hosta internetowego, otwieram phpMyAdmin i klikam „Pokaż informacje o środowisku wykonawczym MySQL”, otrzymuję:
Ten serwer MySQL działa od 53 dni, 15 godzin, 28 minut i 53 sekund. Zaczęło się 24 października 2008 o godzinie 04:03.
Statystyki zapytań: od momentu uruchomienia do serwera wysłano 3 444 378 344 zapytań.
Łącznie 3444 M
na godzinę 2,68 M
na minutę 44,59 k
na sekundę 743,13
To średnio 743 zapytań mySQL na sekundę przez ostatnie 53 dni!
Nie wiem jak ty, ale dla mnie to szybko! Bardzo szybki!!
Osobiście podoba mi się zarówno analiza wykonywana za każdym razem ... żądania / sekundę i średni czas / prośba, a poza tym uwielbiam widzieć maksymalny czas żądania. Jeśli masz 61 żądań na sekundę, łatwo jest to zmienić, możesz po prostu zmienić ustawienie na 1000 ms / 61 żądań.
Aby odpowiedzieć na twoje pytanie, sami przeprowadziliśmy ogromny test obciążenia i stwierdziliśmy, że waha się on na różnych urządzeniach Amazon, których używamy (najlepszą wartością był 32-bitowy średni procesor, gdy spadł do $$ / zdarzenie / sekundę) i nasze żądania / sekundy wahał się od 29 żądań / sekundę / węzeł do 150 żądań / sekundę / węzeł.
Zapewnienie lepszego sprzętu daje oczywiście lepsze wyniki, ale nie zapewnia najlepszego zwrotu z inwestycji. W każdym razie ten post był świetny, ponieważ szukałem podobieństw, aby sprawdzić, czy moje numery są na boisku i podzieliły się również moimi na wypadek, gdyby ktoś inny szukał. Mój jest całkowicie załadowany tak wysoko, jak tylko mogę.
UWAGA: dzięki żądaniom / drugiej analizie (nie ms / żądanie) znaleźliśmy poważny problem z linuxem, który próbujemy rozwiązać, polegający na tym, że linux (testowaliśmy serwer w C i javie) zawiesza wszystkie wywołania do bibliotek gniazd pod zbyt dużym obciążeniem co wydaje się bardzo dziwne. Właściwie cały post można znaleźć tutaj .... http://ubuntuforums.org/showthread.php?p=11202389
Nadal próbujemy rozwiązać ten problem, ponieważ daje nam to ogromny wzrost wydajności, ponieważ nasz test trwa od 2 minut 42 sekund do 1 minuty 35 sekund, gdy problem zostanie rozwiązany, więc widzimy poprawę wydajności o 33% ... nie wspominając, im gorszy atak DoS, tym dłuższe są te przerwy, aby wszystkie procesory spadły do zera i przestały przetwarzać ... moim zdaniem przetwarzanie serwera powinno być kontynuowane w obliczu DoS ale z jakiegoś powodu zawiesza się co jakiś czas podczas DOS czasami do 30 sekund !!!
DODATEK: Dowiedzieliśmy się, że faktycznie był to błąd stanu wyścigu jdk ... trudny do wyodrębnienia w dużych klastrach, ale kiedy uruchomiliśmy 1 węzeł danych serwera 1, ale 10 z nich, mogliśmy go odtworzyć za każdym razem i po prostu spojrzeć na serwer / datanode, w którym wystąpił. Przełączenie jdk do wcześniejszej wersji rozwiązało problem. Chyba byliśmy na jdk1.6.0_26.
To bardzo otwarte pytanie od jabłka do pomarańczy.
Pytasz: 1. średnie obciążenie żądaniem dla aplikacji produkcyjnej 2. co jest uważane za szybkie
Te nie muszą być ze sobą powiązane.
Twoja średnia liczba żądań na sekundę jest określana przez
za. liczba jednoczesnych użytkowników
b. średnia liczba żądań stron wysyłanych na sekundę
do. liczba dodatkowych żądań (np. wywołań Ajax itp.)
A co jest uważane za szybkie… czy masz na myśli, jak niewiele żądań może przyjąć witryna? Lub jeśli sprzęt jest uważany za szybki, jeśli może przetwarzać xyz # żądań na sekundę?
Zwróć uwagę, że wykresy współczynnika trafień będą kształtami sinusoidalnymi z „godzinami szczytu”, które mogą być 2x lub 3x wyższe niż podczas snu użytkowników. (Może być przydatne, gdy planujesz codzienne przetwarzanie wsadowe na serwerach)
Efekt można zobaczyć nawet na „międzynarodowych” (wielojęzycznych, zlokalizowanych) witrynach, takich jak wikipedia
Możesz przeszukać „analizę efektu slashdot”, aby znaleźć wykresy pokazujące, co byś zobaczył, gdyby jakiś aspekt witryny nagle stał się popularny w wiadomościach, np. Ten wykres na wiki .
Aplikacje internetowe, które przetrwały, są zwykle tymi, które mogą generować statyczne strony zamiast przesyłać każde żądanie za pośrednictwem języka przetwarzania.
Pojawiło się doskonałe wideo (myślę, że mogło być na ted.com? Myślę, że mogło to być zrobione przez zespół sieciowy flickr? Czy ktoś zna link?) Z pomysłami na to, jak skalować strony internetowe poza pojedynczy serwer, np. alokuj połączenia między serwery tylko do odczytu i do odczytu i zapisu, aby uzyskać najlepszy efekt dla różnych typów użytkowników.