GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Kapazitätsplanung:5 Dinge, die Sie tun müssen

Ich denke, dass viele Systemadministratoren entweder Angst vor Kapazitätsplanung haben oder sie einfach für unnötig halten. Erstens gibt es keinen Grund, Kapazitätsplanung zu fürchten (es ist keine Raketenwissenschaft); und zweitens ist eine Kapazitätsplanung zu 100 % notwendig. In der Vergangenheit mussten sich Systemadministratoren damit auseinandersetzen, dass das Management weitreichende Entscheidungen treffen musste, um Kapazität hinzuzufügen und die Leistung zu verbessern, indem sie entweder neue Systeme in den Mix warf oder CPU, RAM oder schnelleren Speicher hinzufügte. Normalerweise, aber nicht immer, blieb das Problem über die Upgrades und die zusätzliche Kapazität hinaus bestehen. Aber das Qualifikationsmerkmal „normalerweise“ ist der Teil der Gleichung, der Systemadministratoren und -manager gleichermaßen ins Straucheln bringt – bis zu dem Punkt, an dem sich niemand mit der tatsächlichen Kapazitäts- und Leistungsplanung und -verwaltung befassen möchte.

Dieses Problem muss kein Kampf sein. In diesem Artikel stelle ich fünf Dinge vor, die Sie wissen müssen, um mit der Linux-Kapazitätsplanung zu beginnen. Sie können diese Richtlinien auch auf jede Umgebung anwenden:Linux, Windows, Unix oder eine Hybridversion davon.

Grundlagen der Kapazitätsplanung

Wenn Sie über Kapazität sprechen, sprechen Sie eigentlich über Leistung. Kapazität und Leistung werden immer zusammen genannt. Sie müssen die Leistung messen und überwachen, um jede Art von Kapazitätsplanung durchführen zu können. Kapazität bedeutet die Fähigkeit, Daten ohne Engpässe oder Auswirkungen auf den Endbenutzer zu verarbeiten und zu speichern. Meistens denken Systemadministratoren unter Leistung an die Datenverarbeitung für Websites, Datenbanken oder Anwendungen. Aber das ist nicht, wo die Leistung endet. Denken Sie an die Backup- und Wiederherstellungsleistung. Sicherungen erfordern Komprimierung, Deduplizierung, Datenträger-zu-Datenträger-Übertragung oder Übertragung über das Netzwerk. Und vergessen Sie nicht, dass das Verschieben virtueller Maschinen von einem Host auf einen anderen Rechen-, Speicher- UND Netzwerkkapazität erfordert.

Ihr Fazit hier ist:Kapazität und Leistung sind zu eng miteinander verbunden, um sie in verschiedene Konversationen zu trennen. Werfen wir einen Blick auf die Schritte in diesem Prozess.

Erstens:Holen Sie sich eine Baseline

Es spielt keine Rolle, ob Ihre Systeme brandneu oder drei Jahre alt sind, Sie müssen eine Basislinie erstellen, bevor Sie mit der Kapazitätsplanung und -prognose beginnen können. Das Erstellen einer Baseline ist etwas zeitaufwändig, da eine Baseline keine Momentaufnahme ist, sondern eher eine längerfristige Betrachtung der Leistung. Verwenden Sie für jedes System eine Baseline von mindestens einem Monat. Die Daten eines Monats sollten Ihnen den Leistungsbereich liefern, anhand dessen Sie den Kapazitätsbedarf planen und prognostizieren können.

Es gibt drei Zahlen, die Sie untersuchen müssen, nachdem Sie das vorläufige Datum erfasst haben:Spitzenlast, niedrige und durchschnittliche Auslastung oder Nutzung. Nachdem Sie diese Daten analysiert haben, werden Sie erkennen, warum Sie sich nicht auf einen Last-Snapshot verlassen können, um Sie durch den Kapazitätsplanungsprozess zu führen. Eine Baseline sagt Ihnen, wo Sie sich in diesem Prozess befinden.

Der nächste Datensatz, den Sie berücksichtigen müssen, ist die aktuelle Kapazität. Sie müssen Informationen zur RAM-, CPU-, Festplatten- und Netzwerkkapazität bewerten. Dann müssen Sie herausfinden, was Ihre maximale Kapazität für jedes System ist. Die Differenz zwischen aktueller und maximaler Kapazität gibt Ihnen Ihre Wachstumskapazität. Stellen Sie sich beispielsweise ein System mit der folgenden Konfiguration vor:zwei Quad-Core-CPUs, 128 GB RAM, zwei 1-TB-Festplatten in RAID 1 (gespiegelt) und eine Dual-Gb-Ethernet-Netzwerkschnittstelle. Ihre maximale Kapazität für dieses System beträgt dann vier Quad-Core-CPUs, 512 GB RAM, sechs Festplatten und zwei offene PCIe-Steckplätze für Erweiterungskarten wie Gb-Ethernet-Netzwerkschnittstellenkarten (NICs).

 
 
CPU 2 - Quad-Core 4 - Quad-Core
RAM 128 GB 512 GB
Datenträger 2 Festplatten – 1 TB – RAID 1 6 Festplatten
Netzwerkkarte 2 GbE (Dual) 6 GbE (Dual) - 10 GbE (Quad)

Vergleichen Sie nun die beiden. Dieses System verfügt über viel mehr verfügbare Kapazität für mehr Rechenleistung, Netzwerk und Speicher. Diese Hardwarekapazitätsparameter sowie die Leistungsdaten Ihres Monats sind Ihre Ausgangspunkte für die Vorhersage des Bedarfs an zusätzlicher Kapazität, sei es in Form von Systemupgrades oder einer vollständigen Technologieaktualisierung.

Zweitens:Leistungsüberwachung einrichten

Wenn Sie noch kein Leistungsüberwachungspaket wie sysstat haben installiert ist, können Sie dies einfach aus den Standard-Repositories tun. Überprüfen Sie, ob Sie sysstat haben :

$ rpm -qa |grep sysstat

Wenn Sie es nicht haben, installieren Sie es mit:

$ sudo yum -y install sysstat

Führen Sie die folgenden zwei Befehle aus, um sysstat auszuführen 's Datensammler beim Start und dann zum Starten von sysstat Datenkollektoren von auf Ihrem System:

$ sudo systemctl enable sysstat sysstat-collect.timer sysstat-summary.timer

$ sudo systemctl start sysstat sysstat-collect.timer sysstat-summary.timer

Die sysstat Das Paket besteht aus einer Handvoll Befehlen, die Leistungsstatistiken für eine Vielzahl von Subsystemen und Diensten von CIFS/Samba über Festplatten bis hin zu Linux-Aufgaben melden. Der nützlichste Befehl ist sar , der System Activity Reporter. Der sar Der Befehl liefert Ihnen eine fortlaufende Liste der Systemaktivitätsstatistiken. Jeder Benutzer kann den sar ausgeben Befehl zum Anzeigen von Statistiken:

$ sar 
Linux 4.18.0-80.7.1.el8_0.x86_64 (rhel) 	08/14/2019 	_x86_64_	(1 CPU)

12:00:24 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.22      0.00      0.43      0.01      0.00     99.33
12:20:32 AM     all      1.18      0.05      1.24      0.12      0.00     97.41
12:30:01 AM     all      0.27      0.00      0.49      0.01      0.00     99.23
12:40:32 AM     all      0.20      0.00      0.38      0.00      0.00     99.41
12:50:32 AM     all      0.18      0.00      0.36      0.01      0.00     99.46

Standardmäßig werden alle 10 Minuten Systemstatistiken erfasst. Der sar Der Befehl zeigt allgemeine Systemstatistiken an, aber die weitaus nützlichere und umfangreichere Statistikoption bietet alles sar zu bieten hat, mit dem -A Möglichkeit:

$ sar -A

Die Ausgabe ist viel zu lang, um sie hier zu posten, aber beachten Sie, dass Sie alle Statistiken für jedes Subsystem und jeden Dienst sehen werden, der sar ist sammelt. Bitte beachten Sie den sar man-Seite für weitere Informationen und Details zu bestimmten Statistiken und ihren Optionen.

Drittens:Daten analysieren und darstellen

Die sysstat Collector sammelt Systeminformationen und speichert sie unter /var/log/sa . Die Aktenzeichen sind der Tag des Monats, an dem sie gesammelt wurden. Sie benötigen eine Methode zum Sammeln und Analysieren dieser Daten. Ich schlage Blair Zajacs Orca vor. Ich schlage auch vor, dass Sie Ihre gesammelten Daten zur Verarbeitung und Anzeige an ein zentrales Repository übertragen. Mit anderen Worten:Verarbeiten Sie Ihre Statistiken nicht auf Ihren Produktionssystemen, da sich dies negativ auf Ihre Leistungsstatistiken auswirkt und Ihre Ergebnisse verzerrt.

Orca ist nicht trivial, aber nicht besonders schwierig einzurichten. Vor einigen Jahren habe ich einen Artikel geschrieben, der Ihnen dabei hilft, Ihre Leistungsstatistiken auf einem Webserver mit Orca anzuzeigen. Orca wurde seit einiger Zeit nicht mehr aktualisiert, funktioniert aber immer noch wie in der Dokumentation und in meinem Artikel gezeigt.

Viertens:Legen Sie Leistungsschwellenwerte fest

Für jedes Ihrer Produktions- oder überwachten Systeme müssen Sie die Frage beantworten:"Wie ausgelastet ist ausgelastet?" Es gibt keine perfekte Antwort, und Sie werden die Zahlen wahrscheinlich irgendwann anpassen, um die Anzahl der Benachrichtigungen zu reduzieren, die Sie erhalten, wenn Sie diese Schwellenwerte überschreiten. Angenommen, Sie haben fünf Webserver mit Lastenausgleich, um Webdienste für Ihre externen Kunden bereitzustellen, und Sie müssen deren Leistung überwachen, um vorherzusagen, wann weitere Systeme zur Farm hinzugefügt werden müssen oder wann Sie ein oder nehmen können mehr offline.

Als vorläufigen Test legen Sie den CPU-Schwellenwert für alle fünf Server auf 80 % Auslastung fest. Zweimal täglich erhalten Sie E-Mail-Benachrichtigungen, dass Ihre Systeme über 80 % ausgelastet sind. Das Problem? Sie erhalten Benachrichtigungen alle fünf Minuten von allen fünf Servern, zwei Stunden lang, zweimal täglich. Dies ist ein Hinweis darauf, dass die Schwellenwerte zu niedrig eingestellt sind es sei denn, Sie möchten all diese Benachrichtigungen erhalten.

Sie müssen sich die Leistung während dieser Spitzenzeiten ansehen, um zu entscheiden, wo Sie den Schwellenwert festlegen und ob Sie der Farm weitere Systeme hinzufügen müssen, um die Gesamtauslastung zu senken. Nachdem Sie die Zahlen untersucht haben, stellen Sie fest, dass die Auslastung auf keinem Server zu Spitzenzeiten 87 % übersteigt. Sie beschließen dann, den CPU-Schwellenwert auf 90 % festzulegen und Ihren Monitor weiterhin alle fünf Minuten überprüfen zu lassen, aber Sie senken den Alarmschwellenwert auf dauerhaft 90 % für mehr als zwei Stunden. Das bedeutet, wenn die CPU-Auslastung eines Systems länger als zwei Stunden 90 % überschreitet, erhalten Sie eine Benachrichtigung. Dieser Schwellenwert für diese Umgebung ist angemessen und überschaubar. Ihre Toleranzgrenze für das Hinzufügen eines neuen Systems zur Farm liegt nach einigen Monaten der Beobachtung bei CPU über 95 % für mehr als zwei Stunden.

Dies ist der Prozess, um zu bestimmen, wie ausgelastet ist, und Ihre Toleranzwerte für jeden Dienst. Es scheint willkürlich, ist es aber nicht, da Sie die Daten kontinuierlich beobachten und auf der Grundlage Ihrer Beobachtungen Anpassungen und Entscheidungen treffen. Eine Auslastung von 90 % für zwei Stunden ist nicht übermäßig, aber Sie sollten dieses Niveau nicht überschreiten, da die Benutzer dann unter langen Wartezeiten beim Abrufen von Daten aus Ihrem System leiden.

Fünftens:Leistungsbenachrichtigung

Ich habe das Warnen besprochen, muss Ihnen aber noch eine Lösung zum Erstellen und Behandeln von Ereignissen (Warnungen) geben. Sie könnten etwas so Einfaches wie ein Bash-Skript erstellen, um sar zu überprüfen Daten für Nutzungszahlen, aber Sie können auch eine kommerzielle Lösung oder sogar etwas dazwischen einsetzen. Ich werde Ihnen keine Warnlösung empfehlen, aber es gibt eine Handvoll Open-Source-Überwachungs- und Warnanwendungen. Die meisten sind agentenbasiert, also fügen Sie Ihrer Liste der Verwaltungsaufgaben die Installation und Wartung eines weiteren Dienstes hinzu.

Wie im vorherigen Abschnitt erwähnt, müssen Sie Ihre Schwellenwerte und Toleranzen anpassen, um sich nicht mit Warnungen in den Wahnsinn zu treiben, insbesondere wenn diese Warnungen als Text auf Ihrem Telefon (Ihren Telefonen) erscheinen. Sie möchten nur benachrichtigt werden, wenn etwas ausgefallen oder in Schwierigkeiten ist und Ihre Aufmerksamkeit für eine Lösung erfordert.

Das Dilemma der Kapazitätsplanung

Das Dilemma der Kapazitätsplanung und Leistungsüberwachung besteht heutzutage darin, dass Sie Ihre Serverhardware wahrscheinlich entweder leasen oder eine Art Cloud-Lösung verwenden, bei der Kapazität und Leistung dynamisch durch Geschäftsregeln gehandhabt werden, anstatt mehrere Server-Racks zu kaufen . Dreijährige Hardware-Leasingverträge schreiben vor, dass Sie alle drei Jahre eine Hardware-Aktualisierung durchführen müssen, ob erforderlich oder nicht. Die Art der Hardwarerichtlinie, die Sie in Ihrem Unternehmen haben, verändert sicherlich den Kurs, wie Sie Kapazitätsänderungen planen.

Wenn Sie leasen, müssen Sie dennoch die Leistung überwachen und über die Kapazität nachdenken, denn wenn Sie unterdimensionierte oder zu wenig gekaufte Hardware haben, müssen Sie dies auf jeden Fall wissen. Wenn Sie kaufen, sollten Sie die Leistungs- und Kapazitätsplanung auf fortlaufender Fünfjahresbasis prüfen. Ich sage fünf Jahre, weil Manager und Geschäftsinhaber Hardware nicht alle drei Jahre ersetzen wollen, wenn sie sie kaufen. Es ist wahrscheinlich, dass sie die Hardwarekäufe als abgeschriebenen Vermögenswert verwenden.

Der Trick bei gekauften Assets besteht darin, dass Sie keine Kapazität verschwenden wollen, indem Sie zu früh zu viel kaufen. Es kursieren viele Geschichten über Leute, die erstklassige Systeme kaufen, nur um sie in fünf Jahren zu erneuern, ohne jemals die Kapazität dieser Systeme auszuschöpfen, und nach fünf Jahren sind sie zu alt, um sich die Mühe zu machen, sie zu aktualisieren und zu aktualisieren. Das Endergebnis für den Erwerb neuer gemieteter oder gekaufter Hardware besteht darin, mit Blick auf Wachstum zu kaufen und dieses Wachstum dann zu nutzen, indem Sie Upgrades basierend auf der Auslastung budgetieren. Mit anderen Worten:Kaufen Sie, was Sie brauchen, führen Sie bei Bedarf ein Upgrade durch und nutzen Sie Ihre Hardwareressourcen vor dem nächsten Aktualisierungszyklus voll aus.

Zusammenfassung

Kapazitätsplanung und Leistungsüberwachung arbeiten zusammen, um Ihnen ein vollständiges Bild Ihres Hardware- und Softwarelebenszyklus zu geben. Es ist wichtig, sich die Zeit zu nehmen und sich die Mühe zu machen, Überwachung und Alarmierung einzurichten und die Daten zu analysieren. Allzu oft richten vielbeschäftigte Systemadministratoren aufwendige Überwachungslösungen ein und ignorieren diese dann. Finden Sie einen Weg, um ein Gleichgewicht zu finden, indem Sie sich von Leistungswarnungen in den Wahnsinn treiben lassen und niemals die Warnung sehen, die zu längeren Ausfallzeiten führt. Die Kapazitätsplanung hilft Ihnen auch, Geld zu sparen, indem Sie Dienste von überlasteten auf nicht ausgelastete Systeme umstellen.


Linux
  1. 30 Dinge, die Sie nicht über den Linux-Kernel wussten

  2. 3 Linux-Terminals, die Sie ausprobieren müssen

  3. 3 nützliche Dinge, die Sie mit dem IP-Tool in Linux tun können

  4. 10 grundlegende Linux-Befehle, die Sie kennen müssen

  5. Braucht Linux gelegentlich eine Bereinigung?

Benötigen Sie Java? So können Sie es Java unter Linux installieren

Alles, was Sie über Linux-Container (LXC) wissen müssen

Alles, was Sie über Linux Ubuntu Server wissen müssen

Alles, was Sie über Linux OpenSSH Server wissen müssen

Alles, was Sie über Linux Zorin OS wissen müssen

Alles, was Sie über Peppermint Linux OS wissen müssen