it-swarm.com.de

Wie kann man abschätzen, welche Art von Serverressourcen beim Start benötigt werden?

Wie kann ich vorgehen/was ist der beste Weg, um abzuschätzen, welche Art von Serverressourcen ich beim Start eines neuen Projekts benötigen werde? Nehmen wir zum Beispiel an, ich habe 10.000 E-Mail-Adressen von Benutzern gesammelt, die sich dafür entschieden haben, beim Start benachrichtigt zu werden.

Eigentlich wollte ich mich im Moment nicht für eine Cloud-Lösung entscheiden. Sollte ich nur einen angemessenen dedizierten Server kaufen und von dort aus fortfahren, oder sollte ich Dienste wie Amazon EC2 in Betracht ziehen? Oder sollte ich mit EC2 für die vollflexiblen Ressourcen beginnen, und sobald sich die Dinge stabilisiert haben, kann ich einen festen Hosting-Deal sortieren, der an anderer Stelle angemessen ist?

Unterfrage: Wie lässt sich gut abschätzen, welche Belastung eine bestimmte Anwendung pro Benutzer auf dem Server verursacht?

3
Anonymous

Generell neigt meiner Erfahrung nach jeder dazu, die Menge an Ressourcen, die eine Website verbraucht, zu überschätzen.

Wie immer ist es eine Auszahlung von Geld/Kapazität. Sofern Sie von Word go aus nicht mit einer monatlichen Bandbreitennutzung von 30/40 GB rechnen, würde ich empfehlen, mit einem Standard-Shared-Hosting-Paket zu beginnen.

Das Hauptproblem beim Hosten von Websites ist heutzutage nicht wirklich die anhaltende Nutzung, sondern die durch soziale Medien und E-Mails verursachten Spitzen. Wenn Sie garantieren können, dass jeder dieser 10.000 E-Mail-Empfänger auf Ihre E-Mail klickt, bekomme ich einen dedizierten Server.

EC2 ist flexibler, kostet aber mehr als eine dedizierte Lösung. Es ist nur dann sehr preisgünstig, wenn Sie es verwenden können, um Instanzen automatisch nach oben und unten zu spulen, wie es Ihre Last erfordert. Zu sagen, dass EC2 überhaupt nicht mit sofortigen Lastspitzen umgehen kann . Wenn Sie von einem Hochtöner mit über 150.000 Followern erwarten, dass er einen Link zu Ihrer Site twittert (@notch), sollten Sie entweder auf einem Cluster hosten, mit Zwischenspeicherung, oder "Belagerung" verwenden, um EC2 zuerst mit einer Schuppenladung von zu treffen Verkehr, so spult es auf.

Technisch gesehen ist ein dediziertes System viel einfacher zu warten und zu bedienen als EC2 - Sie haben die volle Kontrolle über alles. Vieles in EC2 hängt von Amazon ab, und diese Instanzen können einige seltsame Dinge tun, denen Sie niemals auf den Grund gehen werden. Bereiten Sie sich darauf vor, Ihre ec2-Instanzen so zu konfigurieren, dass sie ganz einfach und schnell entsorgt werden können. Es ist am besten, automatische Systeme zu haben, die fehlgeschlagene Instanzen erkennen und neu starten. Wenn Sie einen Load-Balancer verwenden, werden Sie feststellen, dass (meistens) alles funktioniert.

Welche Ressourcen Sie benötigen, hängt auch davon ab, wie viel Arbeit Ihr Webserver für das Versenden der Webseite an die Besucher leisten muss. Eine statische HTML-Site? Ich habe gesehen, dass dumm große TV-Show-getriebene Verkehrsspitzen leicht von einem einzigen Kern P4, 1 GB RAM, Apache2-mpm-Prefork-Maschine bewältigt werden, einfach, weil es überhaupt keinen dynamischen Inhalt gab. Prefork, da uns nicht mitgeteilt wurde, dass es keinen dynamischen Inhalt gibt. PHP wurde aktiviert, aber nicht verwendet.

belagerung/Belagerung (Apache-Benchmark) sind beides großartige Tools, mit denen Sie testen sollten, wie Ihre Website damit umgeht. Eine Parallelität über 50 ist höchst ungewöhnlich, es sei denn, Sie sind @ notch'ed usw. Siege ist das fortgeschrittenere Tool und kann so tun, als wäre es ein Webbesucher. Das gleichzeitige Ausführen über mehrere Internetverbindungen ist am besten, wenn Sie eine Art Lastenausgleich verwenden und eine Liste mit URLs verwenden.

Stellen Sie sicher, dass Sie Caching-Lösungen verwenden. Wenn Sie WordPress verwenden, verwenden Sie ein Caching-Plugin. Machen Sie sich mit den technischen Details vertraut und konfigurieren Sie einen Op-Code-Cacher für PHP. Haben Sie keine Angst, um Hilfe zu bitten, und Sie könnten immer leicht frech sein ) die Experten hinzuziehen :)

Haftungsausschluss/Quelle: Ich bin ein Techniker und arbeite bei http://positive-internet.com

4
Kirrus

Wenn Sie einen dedizierten Server erhalten und Ihr Ressourcenlimit erreichen, müssen Sie keinen Cloud-basierten Server einrichten und alle diese Daten migrieren. Zumindest mit ec2 können Sie einen Lastenausgleich für einen anderen Server einrichten und Ausfallzeiten minimieren.

Um abzuschätzen, wie viele Ressourcen ein einzelner Benutzer in Ihrer Anwendung beansprucht. Verwenden Sie diese Linux-Anwendungen

Terminal-Skripte bmon zur Überwachung der Ein- und Auslastung der Bandbreite vmstat zur Überwachung des Speichers

Führen Sie diese Skripte aus, während Sie bei einem einzelnen Benutzerkonto angemeldet sind, fügen Sie Bearbeitungsdaten hinzu, wie es jeder neue Benutzer tun würde, und führen Sie alle Programme oder Anwendungen aus, die der Benutzer an einem Tag ausführen würde. Überprüfen Sie die Protokolle von bmon und vmstat, und skalieren Sie sie, um die Verwendung abzuschätzen. Sie können diese Daten sogar in den Amazon-Rechner einstecken, um zu sehen, wie sie verwendet werden.

Wenn Ihre Anwendung cron verwendet, um Aufgaben auszuführen, sagen Sie täglich. Sie sollten in Betracht ziehen, die ec2-API zu verwenden, um einen Server (eine Instanz) online zu schalten. Führen Sie die Aufgaben aus und schalten Sie sie dann offline, damit Sie nicht rund um die Uhr in Rechnung gestellt werden, wenn Sie diese administrativen Aufgaben nur einige Minuten oder Stunden ausführen müssen. Das spart dir etwas Geld.

1
Anagio