Nasza firma pojawi się w tym tygodniu w telewizyjnym programie telewizyjnym w doskonałej jakości, a oni powiedzieli nam, że możemy spodziewać się około 200 000 odwiedzających na naszej stronie jednocześnie.
Zwykle mamy tylko około 100 odwiedzin dziennie, więc nie mam pojęcia, czy poradzimy sobie z tak dużym ruchem. Jesteśmy gospodarzem 1and1.co.uk
.
Czy możemy podjąć jakieś środki ostrożności, aby zapobiec uszkodzeniu naszej witryny?
web-hosting
traffic
visitors
downtime
SamTheMan
źródło
źródło
Odpowiedzi:
W okresie dużego ruchu twój serwer powinien być w stanie obsłużyć wszystkie żądania złożone przez odwiedzających twoją stronę. Istnieją jednak pewne ograniczenia w jednoczesnych połączeniach obsługiwanych przez serwer. Dlatego najlepiej jest obsługiwać żądania strony tak szybko, jak to możliwe.
Oto kilka sugestii do rozważenia w takich sytuacjach,
Ulepszenia na poziomie aplikacji:
1. Minimalizuj żądania HTTP, aby przyspieszyć ładowanie strony.
a) Połącz wszystkie pliki JS razem w jeden połączony plik JS, a wszystkie pliki CSS w jeden połączony plik CSS.
b) Zminimalizuj pliki JS i CSS, dzięki czemu rozmiar pliku zostanie zmniejszony i zostanie pobrany szybciej.
c) Użyj duszka CSS - Kiedy połączysz większość lub wszystkie swoje obrazy w duszka, zamieniasz wiele żądań obrazów w jeden. Następnie wystarczy użyć właściwości CSS tła-obrazu, aby wyświetlić potrzebną sekcję obrazu.
d) Opóźnij pobieranie obrazu za pomocą leniwego ładowania, pomoże to zmniejszyć liczbę żądań HTTP.
2. Przygotuj lekkie strony, które oczekują więcej wizyt:
a) W miarę możliwości wykluczaj elementy dekoracyjne, takie jak obrazy lub Flash; używaj tekstu zamiast obrazów w nawigacji strony i chrome, a większość treści umieść w HTML.
b) Używaj statycznych stron HTML zamiast dynamicznych; to ostatnie powoduje większe obciążenie serwerów. Możesz także buforować statyczne dane wyjściowe stron dynamicznych, aby zmniejszyć obciążenie serwera.
Ulepszenia na poziomie serwera:
1. Zmniejsz wartości limitu czasu serwera , konsultując się z dostawcą hostingu (nie powinno to być zbyt niskie).
Gdy limity czasu będą krótsze, połączenie zostanie wkrótce uwolnione, więc serwer będzie w stanie obsłużyć więcej połączeń.
2. Korzystaj z usług stron trzecich, takich jak CloudFlare, do statycznego buforowania danych oraz do ochrony witryny przed złośliwymi użytkownikami i atakami, takimi jak DDOS.
3. Zaktualizuj sprzęt serwera - zaktualizuj pamięci fizyczne i wirtualne, zwiększ limity procesów we / wy i wejścia, jeśli to konieczne. Twój dostawca hostingu będzie w stanie Ci pomóc.
4. Buforuj kod dynamiczny - użyj APC do buforowania kodu operacyjnego PHP.
5. Równoważenie obciążenia - Rozłóż obciążenie na wiele serwerów równoważenia obciążenia.
Po podjęciu wszystkich wymaganych działań nadszedł czas, aby sprawdzić, czy witryna jest gotowa na ogromny skok ruchu.
Istnieją usługi stron trzecich, takie jak loadimpact.com, które zapewniają testy obciążenia przy symulowanym ruchu. Analiza pomoże ci zrozumieć, ile obciążenia może wytrzymać Twoja witryna i co można poprawić.
Ponadto w okresie wzrostu natężenia ruchu unikaj operacji intensywnego użycia procesora, takich jak cronjobs tworzenia kopii zapasowych witryn itp.
źródło
Przede wszystkim polecam Cloudflare. Możesz utworzyć bezpłatne konto podstawowe, które będzie kierować ruchem przez lokalne centra danych, aby zminimalizować liczbę przeskoków na serwerze. Cloudflare doskonale nadaje się również do buforowania treści i ma ochronę DDOS.
Poza tym spróbuj przyciąć tłuszcz z warstwy usług. Upewnij się, że nie masz zbyt rozdętych zapytań do bazy danych, które powodują wąskie gardło w kodzie ani logiki obciążającej procesor, która mogłaby zostać uproszczona.
Spróbuj także buforować wszelkie zapytania do bazy danych. Niektóre świetne opcje buforowania zapytań to Redis lub Memcache. OpCaching to kolejna kwestia, jeśli używasz języka nieskompilowanego.
Ale prawdopodobnie najważniejsze jest utrzymanie optymalnej zawartości statycznej (np. Css, js i obrazów). Zminimalizuj wszystkie Javascript, połącz je wszystkie w jeden plik, jeśli to możliwe. Pamiętaj, że każdy plik zawarty w Twojej witrynie musi wykonać kilka przeskoków serwera, aby dotrzeć do użytkownika końcowego.
Nie lekceważ też przepustowości i czasu ładowania, które możesz zaoszczędzić dzięki kompresji obrazów!
Na koniec rozważ monitorowanie wydajności za pomocą narzędzi takich jak New Relic.
Powodzenia!!
Źródło: Według Alexy jeden z programistów 12. najpopularniejszej witryny w Wielkiej Brytanii.
źródło
Rozważ przetestowanie obciążenia witryny. Dostępne są bezpłatne narzędzia, takie jak JMeter , The Grinder i Gatling , które mogą symulować dużą liczbę odwiedzających witrynę.
Testując z wyprzedzeniem wpływ dużego ruchu, możesz ustalić, czy dokonane strojenie było skuteczne, i spojrzeć na dalsze strojenie, jeśli nie.
źródło
Jeśli korzystasz z 1 i 1, prawdopodobnie szukasz taniego hostingu. Tani hosting oznacza, że robisz wszystko pod jednym pudełkiem. Główną przeszkodą dla hostingu jest to, że gdy hostujesz wszystko w tym samym pudełku, dzielisz zasoby między ważne części witryny:
A mając 1 i 1, istnieje duża szansa, że używasz panelu sterowania, takiego jak Plesk lub cPanel, co oznacza, że masz dodatkową warstwę rzeczy konkurujących o zasoby. A ostatni gwóźdź do twojej trumny? Nie masz dużo zasobów. Masz może 1 procesor (lub wirtualny procesor) i bardzo mało pamięci RAM (jeśli masz więcej niż 2 GB, będę zaskoczony).
Kiedy porzuciliśmy 1 i 1, poszliśmy ze skalowalnym dostawcą hostingu (w naszym przypadku Amazon Web Services) i zrobiliśmy kilka rzeczy, których wcześniej nie mogliśmy
AWS nie jest jedyną grą w mieście (Azure, Rackspace itp.), Ale upewnij się, że 1 i 1 można skalować, aby spełnić Twoje wymagania.
źródło
Skontaktuj się z usługodawcą internetowym i sprawdź, czy nie ma ograniczenia przepustowości. Zaktualizuj swój plan hostingowy, jeśli przepustowość jest niewystarczająca do oczekiwanego natężenia ruchu. Nie chcesz wyświetlać użytkownikom komunikatu „Przekroczono limit przepustowości”.
źródło
Z własnego doświadczenia wiem, że nawet najlepszy VPS ma swoje ograniczenia. Idę tutaj prawdziwy laik.
Jedna z naszych witryn sportowych była hostowana na VPS. Podczas meczu między Pakistanem a Indiami otrzymaliśmy ponad 70 000 odsłon. Mieliśmy VPS Inmotinghosting z 4 GB pamięci RAM i przetwarzaniem 2. GHz, przepustowością 1 TB, pamięcią SSD i innymi ciekawymi rzeczami. Aktywowaliśmy również płatną wersję Cloudflare.
To było w połowie meczu, a strona się zawiodła. Nigdy nie pojawił się na żywo podczas meczu i straciliśmy potencjalnie ponad 70 000 więcej odwiedzających. Później wiedzieliśmy, że nasza przepustowość została zużyta i bez hosta źródłowego CDN jest w większości przypadków bezużyteczny.
Lekcja: oprócz uzyskania VPS i dostrojenia się do CND, takich jak Cloudflare, zminimalizuj rozmiar swojej strony. Im mniej, tym lepiej. Możesz skorzystać z buforowania stron i minimalizacji kodu, co jest bardzo przydatne w obsłudze ruchu.
źródło
Nie zdefiniowałeś zbyt dobrze „od razu”. Załóżmy, że patrzysz na 200 000 unikalnych użytkowników w ciągu pół godziny. To 111 żądań na sekundę, nie biorąc pod uwagę użytkowników, którzy klikają i otwierają więcej stron (które chcesz, prawda?).
Pierwszą rzeczą, którą bym zrobił, były historie Google o ludziach o podobnym natężeniu ruchu. Wiele osób napisze na swoich blogach, aby pomóc innym. Zauważysz, że niezwykle trudno jest znaleźć historię o tym, że ktoś robi to na hostingu współdzielonym, i jest ku temu powód. Przyjrzyj się rozwiązaniom takim jak Digital Ocean lub Amazon Web Services, na początek, korzystając z najbliższego centrum danych dla odbiorców. Zgadzam się, że przeniesienie wszystkich zasobów statycznych do CloudFlare, nawet darmowego konta, jest doskonałym pomysłem.
Oprócz tego sprawdź kod, dodając skrypty synchronizacji na górze i na dole stron, zakładając, że są dynamiczne. Zakładając, że moje założenie dotyczące liczb jest prawidłowe, musisz być w stanie obsłużyć każdą stronę w czasie krótszym niż 10 milisekund, aby utrzymać jakikolwiek dopuszczalny poziom wydajności. Jeśli domyślnie obsługujesz wszystkie żądania za pośrednictwem protokołu SSL, wyłącz to na kilka dni, gdy minie burza.
Ponadto 200 000 brzmi bardzo przerażająco, ale pamiętaj, że nie musisz się zbytnio bać (choć powinieneś być trochę). Na przykład, gdy magazyn Paper opublikował zdjęcia Kim Kardashian NSFW, do obsługi obciążenia wystarczyły tylko cztery średnie serwery internetowe i Amazon ELB, zgodnie z tym artykułem (SFW). Zdecydowanie nie sądzę, że twoja obecna konfiguracja sobie z tym poradzi, ale nie powinieneś dokładnie potrzebować szesnastu serwerów sieciowych z 48 rdzeniami, z których każdy jest zasilany własnym małym generatorem jądrowym.
źródło
Znam to stare, ale bardzo dobre pytanie i chciałbym mieć dobre informacje na ten temat kilka lat temu ...
Od czasu do czasu w sieciach telewizyjnych pojawiają się (związane z działalnością szkolną) witryny. Ponieważ działamy przy bardzo napiętym budżecie, rozwiązaniem jest „równoważenie obciążenia”. Pudełka VPS mogą być obecnie dość tanie i po prostu kopiujemy / duplikujemy nasze treści na 2-3 z nich.
Przeczytaj ten artykuł i przeczytaj o „round-robin”.
Więcej informacji na temat testowania obciążenia można znaleźć tutaj .
Kiedy zaczęliśmy próbować radzić sobie z pikami, po prostu mieliśmy naszą zawartość na 2-3 skrzynkach VPS i umieściliśmy ich NS w ustawieniach rejestratora.
źródło
Najlepiej jest mieć dedykowane serwery z wieloma klastrami, które rozwiążą Twój problem
źródło
Powodzenia w przepisywaniu witryny, zmianie dostawców i migracji treści do CDN w niecały tydzień.
Jak zapewne zauważyłeś na podstawie innych odpowiedzi, są to minimum czynności, które musisz zrobić, aby przygotować witrynę do znacznego wzrostu ruchu. Chociaż jeśli obecnie prowadzisz witrynę 1and1.co.uk, prawdopodobnie nie masz silnego zespołu inżynierów sieciowych, DBA, programistów i optymalizatorów front-end.
Tak się nie stanie, prawda?
Nie powiedziałeś, co robisz ze swoją witryną, czy działa na niej koszyk na zakupy, czy może być zaimplementowany przy użyciu zawartości statycznej. W takim przypadku możesz przetrwać tsunami, jeśli zeskrobujesz całą witrynę na pliki statyczne i opublikujesz ją w miejscu zwykłej strony (najpierw wykonaj kopię zapasową bieżącej wersji).
Powinieneś także rozmawiać z 1 i 1 (z kartą kredytową w ręku).
źródło