it-swarm.com.de

Können Sie mir bei meiner Kapazitätsplanung helfen?

Dies ist eine kanonische Frage über Kapazitätsplanung

Verbunden:

Ich habe eine Frage zur Kapazitätsplanung. Kann die Server Fault Community bitte bei folgenden Fragen helfen:


  • Welche Art von Server muss ich für eine bestimmte Anzahl Benutzer verwenden?
  • Wie viele Benutzer kann ein Server mit einige Spezifikationen verarbeiten?
  • Wird eine Serverkonfiguration schnell genug für meinen Anwendungsfall sein?
  • Ich baue eine Social-Networking-Site auf: Welche Art von Hardware benötige ich?
  • Wie viel Bandbreite brauche ich für ein Projekt?
  • Wie viel Bandbreite wird eine bestimmte Anzahl der Benutzer in einer Anwendung verwenden?
133
voretaq7

Die Server Fault-Community kann Ihnen im Allgemeinen nicht bei der Kapazitätsplanung helfen. Die beste Antwort, die wir anbieten können, lautet "Benchmarking Ihres Codes auf Hardware, ähnlich der, die Sie in der Produktion verwenden Identifizieren Sie eventuelle Engpässe und bestimmen Sie dann, wie viel Workload Ihre aktuelle Hardware bewältigen kann und/oder wie viel Hardware-PS Sie benötigen, um Ihre Ziel-Workload zu bewältigen ".


Bei der Kapazitätsplanung spielen eine Reihe von Faktoren eine Rolle, die wir auf einer Frage-Antwort-Website nicht angemessen bewerten können:

  • Die Anforderungen Ihres speziellen Codes/Ihrer Software
  • Externe Ressourcen (Datenbanken, andere Software/Sites/Server)
  • Ihre Arbeitsbelastung (Peak, Durchschnitt, Warteschlange)
  • Der Geschäftswert der Leistung (Kosten-Nutzen-Analyse)
  • Die Leistungserwartungen Ihrer Benutzer
  • Eventuelle Service Level Agreements/vertragliche Verpflichtungen, die Sie möglicherweise haben

Eine ordnungsgemäße Analyse dieser und anderer Faktoren würde den Rahmen einer einfachen Frage-und-Antwort-Website sprengen: Sie erfordern detaillierte Kenntnisse über Ihre Umgebung und Anforderungen, die nur Ihr Team (oder ein angemessen vergüteter Berater) effizient erfassen kann.


Einige Axiome der Kapazitätsplanung

  1. RAM ist billig
    Wenn Sie erwarten, dass Ihre Anwendung viel RAM verwendet), sollten Sie so viel RAM einfügen, wie Sie sich leisten/anpassen können).
  2. Festplatte ist billig
    Wenn Sie erwarten, viel Festplatte zu verwenden, sollten Sie große Laufwerke kaufen - viele davon.
    SAN/NAS-Speicher ist weniger billig und sollte normalerweise eher groß als klein angegeben werden, um später kostspielige Upgrades zu vermeiden.
  3. Die Arbeitsbelastung wächst mit der Zeit
    Angenommen, Ihr Ressourcenbedarf steigt.
    Beachten Sie, dass der Anstieg möglicherweise nicht symmetrisch ist (CPU und RAM kann schneller als die Festplatte ansteigen) und möglicherweise nicht linear.
  4. Strom ist teuer
    Obwohl RAM und Festplatten im Preis erheblich gesunken sind, sind die Stromkosten stetig gestiegen. All diese zusätzlichen Festplatten und RAM, ganz zu schweigen von der CPU-Leistung, erhöhen Ihre Stromrechnung (oder die Rechnung, die Sie an Ihren Provider bezahlen) Planen Sie entsprechend.
98
voretaq7

Planung der Anzahl virtueller Maschinen

Wenn Sie herausfinden möchten, wie viele VMs Sie auf einem einzelnen Host planen sollten, gibt es eigentlich keine wirklich guten Faustregeln. Tatsächlich gibt es nur einen, und es ist nur irgendwie gut:

Die Anzahl der virtuellen Maschinen ist normalerweise durch den Arbeitsspeicher begrenzt, außer wenn dies nicht der Fall ist.

Was nicht besonders hilfreich ist. Wenn auf diesen VMs Anwendungen mit niedriger CPU ausgeführt werden, basiert Ihr Limiter auf RAM. Jede VM Plattform hat ihre eigenen Fähigkeiten, RAM zu überzeichnen, daher ist es nicht so einfach wie TOTAL_RAM/Per-VM-RAM = MachineCount, aber diese Nummer ist ein guter Planungsgegenstand.

Aber was ist, wenn Ihre VMs neben dem Paket-Slinging mit niedriger CPU-Leistung auch andere Aufgaben ausführen?


Die Anzahl der virtuellen Maschinen ist durch sieben diskrete Ressourcen begrenzt, die der Host-Maschine zur Verfügung stehen:

  • Hypervisor VMware, Xen, HyperV, KVM, was auch immer. Jedes hat seine eigenen Funktionen, die sich auf die Anzahl auswirken. Einige sind sehr gut in der Deduplizierung von Speicherseiten, andere weniger. Einige erlauben keine Überbelegung der CPU-Kapazität, andere nicht.
  • CPU-Kerngeschwindigkeit Dies begrenzt die maximale Single-Thread-Leistung, die a VM kann ausgeführt werden. 36 Kerne von a 1,8-GHz-CPU kann 64,8 GHz CPU auf einem Host sein, aber kein einzelner Thread läuft schneller als 1,8 GHz.
  • CPU Core Count Dies beschreibt mit der Kerngeschwindigkeit die Obergrenze der maximalen CPU-Leistung, die Sie erleben können.
  • System-RAM Wie oben beschrieben, begrenzt dies die Anzahl der VMs, die Sie ausführen können. Bestimmte Hypervisoren sind in Sachen Deduplizierung von Speicherseiten besser als andere. Wenn Sie also 100 identische VMs ausführen, können Sie viel mehr davon auf solchen Deduplizierungssystemen packen, als wenn Sie 100 völlig unterschiedliche VMs ausführen.
  • Festplattengröße Jedes Betriebssystem-Image benötigt einen bestimmten Speicherplatz. Sie benötigen genügend Speicherplatz, um alles zu speichern. Daher legt die Festplattengröße eine Obergrenze für die Anzahl der VMs fest, die Sie hosten können.
  • E/A-Bandbreite Die den VMs zugrunde liegende Festplatte hat ein Maximum an Anzahl der E/A pro Sekunde, die sie verarbeiten kann. Wenn Sie zu viel darauf werfen, bleiben die Systeme hängen und warten auf den Abschluss der E/A. Dies legt eine Obergrenze für die Anzahl der E/A-VMs fest, die Sie ausführen können.
  • Netzwerkbandbreite Bei netzwerkbasierten VMs wird durch die verfügbare Netzwerkbandbreite eine Obergrenze für die Anzahl solcher VMs festgelegt, die auf einem bestimmten Host ausgeführt werden können.

All dies kann das sein, worüber Sie stolpern. Es hängt alles davon ab, was Sie mit Ihren VMs tun. Einige Dinge, an die Sie sich erinnern sollten:

  • Es gibt kein generisches System.
  • Es gibt keinen generischen Webserver , da der Anwendungscode von kaum beweglicher Nadel ausgeführt werden kann CDN - Style-Serving für große Deep-Crack-Inhalte wie Video-Transcodierung.
  • Es gibt keinen generischen Datenbankserver . Diese können von winzigen Systemen, die nur zur Verfolgung des Sitzungsstatus verwendet werden, bis zu sehr großen Systemen ausgeführt werden.

Um herauszufinden, wie viele VMs Sie in ein Host-System packen können, müssen Sie wissen, wie Ihre Systeme ausgeführt werden und was sie für eine ordnungsgemäße Ausführung benötigen. Sobald Sie das wissen, können Sie die Zählplanung durchführen. Und noch besser, finden Sie heraus, wie leistungsfähig Sie sind, um Ihre Host-Systeme herzustellen!

45
sysadmin1138

Stellen Sie sicher, dass Sie die richtige Frage stellen.

  • Computer sind billig
  • Zukünftige Bedürfnisse sind sehr schwer vorherzusagen
  • Planen Sie im Voraus, wie Sie skalieren und nicht, was Sie kaufen möchten

Wenn Sie nicht wissen, was Sie brauchen, bedeutet dies, dass Sie nicht viel brauchen. Wenn Sie eine heiße Website haben, haben Sie wahrscheinlich auch ein Betriebsteam, das weiß, wie viel RAM, Festplatte, Io, Netzwerk usw. Ihre App benötigt. Wenn Sie sich in der Traumphase befinden, sollten Sie mit Ihrem Desktop beginnen und sich nach oben arbeiten.

Stellen Sie sicher, dass Sie eine Vorstellung davon haben, wie Sie skalieren, wenn die Dinge größer werden. Können Sie weitere Server hinter dem Load Balancer hinzufügen? Können Sie den Redis-Server shard?

Auch ein eigenes Rechenzentrum zu haben, ist zum Kotzen. Ein Rechenzentrum (auch wenn es nur ein Computer ist) lenkt von Ihrem eigentlichen Zweck ab. Sie können nicht einfach einen Computer kaufen, ihn einschalten und weggehen. Sie benötigen Klimaanlage, Luftfilterung, zuverlässige Stromversorgung, zuverlässiges Internet, Backups, Ersatzteile, physischen Raum zum Wachsen, Stromkapazität zum Wachsen, Stromkabel, die nicht ausgelöst werden, und zig andere Kopfschmerzen.

7
Dylan Martin