Unser Unternehmen wird diese Woche in einer Prime-Time-TV-Show zu sehen sein, und sie haben uns mitgeteilt, dass wir auf unserer Website mit rund 200.000 Besuchern gleichzeitig rechnen können.
Wir bekommen normalerweise nur ungefähr 100 Besuche pro Tag, daher habe ich keine Ahnung, ob wir so viel Verkehr bewältigen können. Wir werden von gehostet 1and1.co.uk
.
Können wir Vorkehrungen treffen, um eine Verkrüppelung unserer Website zu verhindern?
web-hosting
traffic
visitors
downtime
SamTheMan
quelle
quelle
Antworten:
Während der Zeit mit hohem Datenverkehr sollte Ihr Server in der Lage sein, alle Anfragen von Besuchern Ihrer Website zu bearbeiten. Es gibt jedoch einige Einschränkungen bei gleichzeitigen Verbindungen, die vom Server verarbeitet werden. Daher ist es am besten, die Seitenanforderungen so schnell wie möglich zu bearbeiten.
Hier sind einige Vorschläge, die Sie in diesen Situationen berücksichtigen sollten:
Verbesserungen auf Anwendungsebene:
1. Minimieren Sie HTTP-Anforderungen, um die Ladezeiten für Seiten zu beschleunigen.
a) Kombinieren Sie alle JS-Dateien in einer einzigen kombinierten JS-Datei und alle CSS-Dateien in einer einzigen kombinierten CSS-Datei.
b) Reduzieren Sie JS- und CSS-Dateien, damit die Dateigröße verringert und der Download beschleunigt wird.
c) CSS-Sprites verwenden - Wenn Sie die meisten oder alle Bilder zu einem Sprite kombinieren, werden mehrere Bildanforderungen in nur einem zusammengefasst. Dann verwenden Sie einfach die Hintergrundbild-CSS-Eigenschaft, um den gewünschten Bildausschnitt anzuzeigen.
d) Verzögern Sie das Herunterladen von Bildern mit verzögertem Laden. Dies ist hilfreich, um die HTTP-Anforderungen zu reduzieren.
2. Bereiten Sie leichtgewichtige Seiten vor, die mehr Besuche erwarten:
a) Ausschließen von dekorativen Elementen wie Bildern oder Blitzlicht, wo immer dies möglich ist; Verwenden Sie Text anstelle von Bildern in der Site-Navigation und in Chrome, und fügen Sie den größten Teil des Inhalts in HTML ein.
b) Verwenden Sie statische HTML-Seiten anstatt dynamischer. Letzteres erhöht die Auslastung Ihrer Server. Sie können auch die statische Ausgabe dynamischer Seiten zwischenspeichern, um die Serverauslastung zu verringern.
Verbesserungen auf Serverebene:
1. Reduzieren Sie die Werte für das Server-Timeout, indem Sie sich an Ihren Hosting-Anbieter wenden (sollte nicht zu niedrig sein).
Wenn die Zeitüberschreitungen kürzer sind, wird die Verbindung bald freigegeben, sodass der Server mehr Verbindungen verarbeiten kann.
2. Verwenden Sie Dienste von Drittanbietern wie CloudFlare zum Zwischenspeichern statischer Daten und zum Schutz Ihrer Website vor böswilligen Benutzern und Angriffen wie DDOS.
3. Aktualisieren Sie Ihre Serverhardware - Aktualisieren Sie physische und virtuelle Speicher, erhöhen Sie bei Bedarf die Grenzwerte für E / A- und Eingabevorgänge. Ihr Hosting-Anbieter kann Ihnen besser helfen.
4. Dynamischen Code zwischenspeichern - Verwenden Sie APC, um PHP-Opcode zwischenzuspeichern.
5. Lastausgleich - Verteilen Sie die Last auf mehrere Lastausgleichsserver.
Wenn alle erforderlichen Maßnahmen ergriffen wurden, ist es jetzt an der Zeit, zu überprüfen, ob die Website für einen enormen Verkehrsanstieg bereit ist.
Es gibt einige Dienste von Drittanbietern wie loadimpact.com, die Lasttests mit simuliertem Datenverkehr durchführen. Die Analyse hilft Ihnen zu verstehen, wie viel Last Ihre Website bewältigen kann und was verbessert werden kann.
Vermeiden Sie außerdem während der Traffic-Spike-Periode Operationen mit hoher CPU-Auslastung wie Website-Backup-Cronjobs usw.
quelle
Zuallererst würde ich Cloudflare empfehlen. Sie können ein kostenloses Basiskonto erstellen, das den Datenverkehr über lokale Rechenzentren weiterleitet, um die Anzahl der Server-Hops zu minimieren. Cloudflare eignet sich auch hervorragend zum Zwischenspeichern von Inhalten und bietet DDOS-Schutz.
Versuchen Sie im Übrigen, das Fett von Ihrer Serviceschicht zu entfernen. Stellen Sie sicher, dass Sie keine überlasteten Datenbankabfragen haben, die Ihren Code beeinträchtigen, oder keine CPU-intensive Logik, die vereinfacht werden könnte.
Versuchen Sie auch, Datenbankabfragen zwischenzuspeichern. Einige großartige Optionen für das Zwischenspeichern von Abfragen sind Redis oder Memcache. OpCaching ist eine weitere Überlegung, wenn Sie eine nicht kompilierte Sprache verwenden.
Aber wahrscheinlich ist es am wichtigsten, Ihren statischen Inhalt (dh CSS, JS und Bilder) so optimiert wie möglich zu halten. Minimieren Sie Ihr gesamtes Javascript, kombinieren Sie sie wenn möglich zu einer Datei. Denken Sie daran, dass jede Datei, die in Ihrer Site enthalten ist, mehrere Server-Hops durchführen muss, um den Endbenutzer zu erreichen.
Unterschätzen Sie nicht, wie viel Bandbreite und Ladezeit Sie durch das Komprimieren von Bildern sparen können!
Erwägen Sie schließlich, die Leistung mit Tools wie New Relic zu überwachen.
Viel Glück!!
Quelle: Laut Alexa einer der Entwickler der zwölftbeliebtesten Site in Großbritannien.
quelle
Erwägen Sie das Testen Ihrer Site. Es gibt kostenlose Tools wie JMeter , The Grinder und Gatling , mit denen Sie eine große Anzahl von Besuchern Ihrer Website simulieren können.
Indem Sie die Auswirkungen von starkem Datenverkehr im Voraus testen, können Sie feststellen, ob eine von Ihnen vorgenommene Optimierung wirksam war, und ggf. weitere Optimierungen vornehmen.
quelle
Wenn Sie auf 1and1 sind, suchen Sie wahrscheinlich nach einem günstigen Hosting. Billiges Hosting bedeutet, dass Sie in der Regel alles unter einem Dach erledigen. Ein Hauptproblem beim Hosten besteht darin, dass Sie beim Hosten aller Elemente auf derselben Website die Ressourcen auf wichtige Teile Ihrer Website aufteilen:
Und da Sie 1 und 1 sind, besteht eine gute Chance, dass Sie ein Control Panel wie Plesk oder cPanel verwenden. Und der letzte Nagel in deinem Sarg? Sie haben nicht viele Ressourcen. Sie haben vielleicht 1 CPU (oder eine virtuelle CPU) und sehr wenig RAM (wenn Sie mehr als 2 GB haben, werde ich überrascht sein).
Als wir uns von 1 und 1 verabschiedeten, entschieden wir uns für einen skalierbaren Hosting-Anbieter (in unserem Fall Amazon Web Services) und unternahmen einige Dinge, die wir vorher nicht konnten
AWS ist nicht das einzige Spiel in der Stadt (Azure, Rackspace usw.), aber stellen Sie sicher, dass 1 und 1 entsprechend Ihren Anforderungen skaliert werden können.
quelle
Erkundigen Sie sich bei Ihrem Internetdienstanbieter, ob Ihre Bandbreite begrenzt ist. Rüsten Sie Ihren Hosting-Plan auf, wenn die Bandbreite für den erwarteten Datenverkehr nicht ausreicht. Sie möchten Ihren Besuchern nicht die Meldung "Bandbreitenlimit überschritten" anzeigen.
quelle
Aus eigener Erfahrung wusste ich, dass auch das beste VPS seine Grenzen hat. Ich gehe hier echte Laien.
Eine unserer Sportwebseiten wurde auf einem VPS gehostet. Während eines Spiels zwischen Pakistan und Indien haben wir über 70.000 Treffer erhalten. Wir hatten ein Inmotinghosting-VPS mit 4 GB RAM und etwas GHz-Verarbeitung, 1 TB Bandbreite, SSD-Speicher und anderem interessanten Zubehör. Wir hatten auch eine kostenpflichtige Version von Cloudflare aktiviert.
Es war gerade die Hälfte des Spiels und die Website ging kaputt. Es kam während des Spiels nie live und wir haben mehr als 70.000 Besucher verloren. Später wussten wir, dass unsere Bandbreite verbraucht war und ohne funktionierenden Quellhost ist CDN meistens unbrauchbar.
Lektion: Minimieren Sie nicht nur eine VPS, sondern auch eine CND wie Cloudflare. Je kleiner desto besser. Sie können das Seiten-Caching und die Code-Minimierung verwenden, die beim Umgang mit dem Datenverkehr sehr nützlich sind.
quelle
Sie haben "auf einmal" nicht sehr gut definiert. Angenommen, Sie sehen in einer halben Stunde 200.000 einzelne Besucher. Das sind 111 Anfragen pro Sekunde, ohne die Besucher zu berücksichtigen, die durchklicken und mehr Seiten öffnen (welche möchten Sie, oder?).
Das erste, was ich tun würde, sind Google-Geschichten von Menschen, die mit ähnlichen Verkehrsaufkommen umgehen. Viele Menschen werden in ihren Blogs über ihre Erfahrungen schreiben, um anderen zu helfen. Sie werden feststellen, dass es extrem schwierig ist, eine Geschichte über jemanden zu finden, der dies auf Shared Hosting tut, und es gibt einen Grund dafür. Schauen Sie sich zunächst Lösungen wie Digital Ocean oder Amazon Web Services an und nutzen Sie dabei das Ihrem Publikum am nächsten gelegene Rechenzentrum. Und ich bin damit einverstanden, dass das Auslagern aller statischen Ressourcen in CloudFlare, auch eines kostenlosen Kontos, eine hervorragende Idee ist.
Testen Sie außerdem Ihren Code, indem Sie oben und unten auf Ihren Seiten Timing-Skripts hinzufügen, sofern diese dynamisch sind. Angenommen, meine Annahme zu Zahlen ist richtig, müssen Sie in der Lage sein, jede Seite in weniger als 10 Millisekunden zu liefern, um eine akzeptable Leistung zu erzielen. Wenn Sie alle Anforderungen standardmäßig über SSL bedienen, deaktivieren Sie diese Option für einige Tage, während der Sturm vorüber ist.
Auch 200.000 klingt sehr beängstigend, aber denken Sie daran, dass Sie nicht zu ängstlich sein müssen (obwohl Sie es sollten, ein bisschen). Als das Paper-Magazin beispielsweise NSFW-Fotos von Kim Kardashian veröffentlichte, waren laut diesem Artikel (SFW) nur vier mittelgroße Webserver und Amazon ELB erforderlich, um die Last zu bewältigen . Ich glaube definitiv nicht, dass Ihr aktuelles Setup damit fertig wird, aber Sie sollten nicht genau sechzehn Webserver mit jeweils 48 Kernen benötigen, die von einem eigenen kleinen Atomgenerator angetrieben werden.
quelle
Kenne diese alte, aber sehr gute Frage und wünschte, ich hätte vor ein paar Jahren gute Infos zum Thema ...
Von Zeit zu Zeit haben wir (schulbezogene) Websites in Fernsehsendern. Da wir mit einem sehr engen Budget arbeiten, ist "Load Balancing" die Lösung. VPS-Boxen sind heutzutage ziemlich billig und wir spiegeln / duplizieren unseren Inhalt nur auf 2-3 von ihnen.
Schauen Sie sich diesen Artikel an und lesen Sie über "Round-Robin".
Weitere Informationen zu Lasttests finden Sie hier .
Als wir anfingen, mit Spikes umzugehen, hatten wir einfach unseren Inhalt auf 2-3 VPS-Boxen und stellten ihre NS in Registrar-Einstellungen.
quelle
Verwenden Sie dedizierte Server mit mehreren Clustern, um Ihr Problem zu lösen
quelle
Viel Glück beim Umschreiben Ihrer Website, beim Wechseln des Anbieters und beim Migrieren von Inhalten zu einem CDN in weniger als einer Woche.
Wie Sie vielleicht anhand der anderen Antworten festgestellt haben, müssen Sie diese Mindestanforderungen erfüllen, um Ihre Website auf einen starken Anstieg des Datenverkehrs vorzubereiten. Wenn Sie derzeit auf 1and1.co.uk arbeiten, verfügen Sie wahrscheinlich nicht über ein starkes Team von Netzwerktechnikern, Datenbankadministratoren, Programmierern und Front-End-Optimierern.
Es ist unwahrscheinlich, dass es passiert, oder?
Sie haben nicht gesagt, was Sie mit Ihrer Website machen, ob sie Warenkorb ausführt oder ob sie mit statischen Inhalten implementiert werden kann. Wenn letzteres der Fall ist, überleben Sie den Tsunami möglicherweise, wenn Sie die gesamte Site in statische Dateien kratzen und anstelle der regulären Site veröffentlichen (sichern Sie zuerst die aktuelle Version).
Sie sollten auch mit 1 und 1 sprechen (mit Ihrer Kreditkarte in der Hand).
quelle