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


Das ist ein kanonische Frage Über Kapazitätsplanung

Verbunden:

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


  • Welche Art von Server muss ich handhaben? eine Nummer von Benutzern?
  • Wie viele Benutzer kann ein Server mit einige Spezifikationen Griff?
  • Wille einige Serverkonfiguration sei schnell genug für mein Anwendungsfall?
  • Ich baue eine Social-Networking-Site: Welche Art von Hardware brauche ich?
  • Wie viel Bandbreite benötige ich? irgendein Projekt?
  • Wie viel Bandbreite wird? eine Nummer von Benutzern verwenden in einige Anwendung?

131
2018-04-30 19:20


Ursprung




Antworten:


Die Server Fault Community kann Ihnen im Allgemeinen nicht bei der Kapazitätsplanung helfen - die beste Antwort, die wir Ihnen anbieten können, ist "Benchmarkieren Sie Ihren Code auf Hardware, die Ihren Produktionsanforderungen entspricht, identifizieren Sie Engpässe und ermitteln Sie dann, wie viel Arbeitslast Ihre aktuelle Hardware bewältigen kann und / oder wie viel Hardware Sie für die Bearbeitung Ihres Ziel-Workloads benötigen".


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

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

Eine genaue Analyse dieser und anderer Faktoren ist nicht Teil einer einfachen Frage- und Antwort-Website: Sie erfordern detailliertes Wissen über Ihre Umgebung und Anforderungen, die nur Ihr Team (oder ein angemessen entlöhnter Berater) effizient sammeln kann.


Einige Kapazitätsplanungs-Axiome

  1. RAM ist billig
    Wenn Sie von Ihrer Anwendung erwarten, dass sie viel RAM verwendet, sollten Sie so viel Arbeitsspeicher bereitstellen, wie Sie sich leisten können.
  2. Disk ist billig
    Wenn Sie viele Festplatten verwenden, sollten Sie große Laufwerke kaufen - viele davon.
    SAN / NAS-Speicher sind weniger billig und sollten in der Regel eher groß als klein sein, um später kostspielige Upgrades zu vermeiden.
  3. Arbeitsauslastungen wachsen mit der Zeit
    Angenommen, Ihr Ressourcenbedarf wird steigen.
    Bedenken Sie, dass die Erhöhung möglicherweise nicht symmetrisch ist (CPU und RAM können schneller ansteigen als die Festplatte), und sie ist möglicherweise nicht linear.
  4. Strom ist teuer
    Obwohl RAM und Festplatten deutlich billiger geworden 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 zahlen). Planen Sie entsprechend.

94
2018-01-17 15:46



Sie sollten das komplett fallen lassen und die Integration nach Teilen verwenden! - Gilles
+1. Und RAM, wie Sie in Axiom # 1 vorschlagen, ist eines dieser Dinge, die massive Vorteile hat. Zum Beispiel erhöht es Ihre Fähigkeit, das Caching besser zu nutzen, wodurch Sie wiederum weniger Datenbankabfragen durchführen können, was wiederum die Belastung von Festplatte und CPU verringert. Ich bin oft frustriert von Hosting-Providern, die eine schnelle CPU mit ihren Servern und eine minimale Menge an RAM bieten. - Steve Wortham
Ich würde hinzufügen: Disk Kapazität ist günstig. Platte Performance wird teuer. Vor allem, wenn wir eine Zunahme der Festplattengrößen über 10 Jahre beobachten, haben sich die physikalischen Gesetze nicht geändert. Als Faustregel verwende ich (Stand: Juni 2014) die für eine optimale Leistung: 75 IOPs pro Spindel bei SATA, 200 IOPs pro Spindel bei FC und 1500 IOPs pro SSD. Große SATA-Laufwerke geben wirklich ziemlich schlechte IO pro Gigabyte-Verhältnisse. - Sobrique


Planen der virtuellen Maschinenzählung

Wenn es darum geht, herauszufinden, wie viele VMs Sie auf einem einzelnen Host planen sollten, gibt es eigentlich keine wirklich guten Faustregeln. In der Tat gibt es nur einen, und es ist nur gut:

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

Was nicht sehr hilfreich ist. Wenn diese VMs Low-CPU-Anwendungen ausführen, wird Ihr Begrenzer auf RAM basieren. Jede VM-Plattform hat ihre eigenen Fähigkeiten, RAM zu überzeichnen, also ist es nicht so einfach wie TOTAL_RAM / Per-VM-RAM = MachineCount, aber diese Nummer ist ein gutes Planungselement.

Aber was ist, wenn Ihre VMs neben einem Paket-Sling mit niedriger CPU-Leistung auch noch etwas tun?


Die Anzahl der virtuellen Maschinen wird durch sieben diskrete Ressourcen begrenzt, die für die Hostmaschine verfügbar sind:

  • Hypervisor VMware, Xen, HyperV, KVM, was auch immer. Jeder hat seine eigenen Funktionen, die die Anzahl beeinflussen. Einige sind sehr gut bei der Deduplizierung von Speicherseiten, andere weniger. Einige erlauben keine Überbelegung der CPU-Kapazität, andere tun dies.
  • CPU-Kerngeschwindigkeit Dies begrenzt die maximale Singlethread-Leistung, die eine VM ausführen kann. 36 Kerne einer 1,8-GHz-CPU können 64,8 GHz CPU auf einem Host haben, aber kein einzelner Thread läuft schneller als 1,8 GHz.
  • CPU-Kernanzahl Dies beschreibt mit der Kerngeschwindigkeit die maximale 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 bei Dingen wie der Deduplizierung von Speicherseiten besser als andere. Wenn Sie also 100 identische VMs ausführen, können Sie viel mehr davon auf solchen deduplizierenden Systemen packen, als wenn Sie 100 völlig verschiedene VMs ausführen würden.
  • Festplattengröße Jedes Betriebssystem-Image benötigt eine gewisse Menge an Speicherplatz. Du brauchst genug Platz, um alles zu speichern. Daher legt die Datenträgergröße eine Obergrenze für die Anzahl der VMs fest, die Sie hosten können.
  • I / O-Bandbreite Die Festplatte, die den VMs zugrunde liegt, hat ein Maximum, wie viele I / Os pro Sekunde verarbeitet werden können. Wenn Sie zu viel darüber werfen, werden die Systeme nicht mehr funktionieren und warten, bis die E / A abgeschlossen sind. Dies setzt eine Obergrenze für die Anzahl der I / O-konsumierenden VMs, die Sie ausführen können.
  • Netzwerk Bandbreite Bei netzwerkfähigen VMs begrenzt die verfügbare Netzwerkbandbreite die Anzahl solcher VMs, die auf einem bestimmten Host ausgeführt werden können.

All dies kann die Sache sein, über die Sie stolpern, alles hängt davon ab, was Sie mit Ihren VMs machen. Einige Dinge zu erinnern:

  • Es gibt kein generisches System.
  • Es gibt keinen generischen Webserver, da der Anwendungscode von kaum-bewegt-die-Nadel laufen kann CDN-Service, zu großen Deep-Crack-Sachen wie Video-Transcoding.
  • Es gibt keinen generischen Datenbankserver. Diese können von winzigen Systemen, die nur für die Sitzungsstatusverfolgung verwendet werden, bis hin 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 laufen und was sie für einen guten Betrieb benötigen. Sobald Sie das wissen, können Sie die Zählung planen. Und noch besser, finden Sie heraus, wie bullig Sie Ihre Host-Systeme machen müssen!


42
2018-02-06 20:32



Verwenden Sie vm-basierte Systeme vor allem auf zwei separaten physischen Servern mit ungebundenen VMs. Dies ermöglicht einen Hardwareausfall ohne Verlust des gesamten Systems. VMs können zwischen identischen Servern ohne Datenverlust wechseln. nur Sitzungen gehen verloren, dann wieder aufgebaut. Persönlich würde ich an eine Hosting-Firma auslagern, die diese Dienste anbietet (Google oder Amazon). Sie sind teuer, aber viel weniger als das eigene. - Random-IT
Die Sache, die ich in VM-Implementierungen am häufigsten gesehen habe, ist Festplatten-I / O. Die meisten Leute verstehen Speicherplatz, CPU-Geschwindigkeit und Speicher. Sie vergessen diese Festplattenleistung. - Dan Pritts


Stellen Sie sicher, dass Sie die richtige Frage stellen.

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

Wenn Sie nicht wissen, was Sie brauchen, bedeutet das, dass Sie nicht viel brauchen. Wenn Sie eine heiße Website haben, haben Sie wahrscheinlich auch ein Operations-Team, das weiß, wie viel Ram, Disk, io, Netzwerk usw. Ihre App braucht. Wenn Sie in der Traumphase sind, sollten Sie mit Ihrem Desktop beginnen und sich hocharbeiten.

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

Außerdem ist das eigene Rechenzentrum nervtötend. Ein Rechenzentrum (auch wenn es nur ein Computer ist) ist eine Ablenkung von Ihrem eigentlichen Zweck. Sie können nicht einfach einen Computer kaufen, ihn einschalten und gehen. Sie brauchen Klimaanlage, Luftfiltration, zuverlässige Stromversorgung, zuverlässiges Internet, Backups, Ersatzteile, physischen Raum zum Wachsen, Stromkapazität zum Wachsen, Stromkabel, die nicht stolpern, und eine Unmenge anderer Kopfschmerzen.


4