wissen müssen Ob Sie einen Server für eine Anwendung oder nur Ihren lokalen Computer ausführen, Sie möchten, dass Ihr Computer am besten läuft. Aus diesem Grund sollten Sie die CPU -, Festplatten-und Speichernutzung Ihres Computers überwachen. Die Überwachung von Dingen wie Speichernutzung und Festplattennutzung ist eigentlich ziemlich einfach. Wie viel Speicherplatz haben Sie noch? Ist Ihre Festplatte fragmentiert? Haben Sie genug RAM für die Anwendungen, die Sie verwenden? Tauschen Sie regelmäßig Speicher aus?
Das sind einfache Fragen zu beantworten, und sie sind Fragen, die Sie stellen sollten., Einige Fragen sind jedoch komplizierter, insbesondere wenn es um CPU-Metriken geht. Sicher, es gibt einfache Metriken wie die gesamte CPU-Auslastung. Wenn Sie jedoch Linux verwenden, verfügen Sie über esoterischere (und manchmal nützlichere) Metriken wie die CPU-Auslastung. In diesem Beitrag werden wir darüber sprechen, was die CPU-Lastmetrik tatsächlich bedeutet und wie Sie sie zur Optimierung Ihrer Server verwenden können.
CPU Last vs. CPU Nutzung
Das erste, was zu verstehen ist, dass CPU last ist nicht die gleiche sache wie CPU nutzung., Obwohl sie ähnlich klingen mögen, sind sie ganz anders. CPU-Auslastung ist eine Messung, in einem Prozentsatz, wie viel Zeit die CPU verbringt aktiv etwas zu berechnen. Wenn Sie beispielsweise ein Programm hätten, das 54 der letzten 60 Sekunden ununterbrochene Verarbeitungsleistung benötigte, wäre Ihre CPU-Auslastung auf einem Kern 90%. Wenn das Programm stattdessen nur sechs Sekunden Verarbeitungszeit auf einem Kern benötigt, beträgt die Auslastung 10%.
Die meisten Unternehmen versuchen, die CPU-Auslastung ihrer Server so nahe wie möglich an 100% zu halten., Die meisten Server werden nach Gesamtrechnerleistung verkauft, und wenn Ihr Server nur bei 30% CPU-Auslastung sitzt, zahlen Sie für zu viel Prozessorleistung. Sie können Ihren Prozessor auf eine niedrigere Stufe herabstufen, Geld sparen und die Leistung Ihres Servers nicht beeinträchtigen.
CPU Last
CPU last ist anders. Anstatt den Prozentsatz der Zeit zu messen, die die CPU arbeitet, misst die CPU-Last, wie viele Programme gleichzeitig einen Prozessorkern verwenden oder darauf warten. Ein vollständig inaktiver Prozessor hätte einen Ladewert von 0., In unserem vorherigen Beispiel hätten wir eine Minute Ladezeiten von .9 und .1, respectively. Das ist ziemlich intuitiv. Was an der CPU-Auslastung jedoch nicht intuitiv ist, ist, dass ein Wert von 1 nicht unbedingt eine vollständig geladene Messung ist.
Was stattdessen eine „volle“ CPU-Auslastung ausmacht, hängt davon ab, wie viele Betriebssystemthreads Ihre CPU bietet. Die meisten CPUs bilden heutzutage mehr als nur einen CPU-Kern und führen mehr als nur einen CPU-Thread aus. Wenn Ihre CPU über vier Kerne verfügt, ist eine CPU-Last von 1 keine vollständig geladene CPU. Stattdessen wäre es nur ein Viertel geladen., Stattdessen wird Ihre CPU-Last für Ihre CPU als voll angesehen, wenn Ihr Ladewert 4 und nicht 1 beträgt.
Entschlüsselung von Linux-CPU-Lasten
Ausführen eines Programms, das Linux-CPU-Lastsummen anzeigt, kann zunächst etwas verwirrend sein. Wenn Sie einen Befehl wie uptime oder top ausführen, wird möglicherweise ein CPU-Lastwert angezeigt, der wie 1.68 0.55 5.91 aussieht. Wenn Sie nicht wissen, wonach Sie suchen, sieht das nach Lärm aus. Zum Glück ist das eigentlich ziemlich einfach zu entziffern. Es gibt drei Werte hier, und wir werden sie nacheinander betrachten.
Der erste Wert ist 1,68. Dies ist der Wert der CPU-Last in der letzten Minute., Wie bereits erwähnt, ist dies ein Maß dafür, wie viele Programme die CPU-Zeit in der letzten Minute verwendeten. Während der letzten Minute auf diesem Computer gab es durchschnittlich 1,68 Programme, die entweder die CPU-Verarbeitungszeit verwendeten oder auf die CPU-Verarbeitungszeit warteten. Wenn dies eine Single-Threaded-CPU ist, bedeutet dies, dass der Computer überlastet ist. Benutzer warten darauf, dass ihre Programme auf der CPU ausgeführt werden, und es kommt zu Leistungseinbußen. Wenn es sich stattdessen um einen Dual-Core-Computer oder einen Quad-Core handelt, können Benutzer in der letzten Minute genauso schnell CPU-Zeit erhalten, wie sie sie benötigen.,
Der zweite Wert ist 0.55. Dies ist die Messung über die letzten 5 Minuten. Wie bereits erwähnt, bedeutet eine Messung unter 1, dass die CPU einen Teil der Zeit in diesem Fenster vollständig im Leerlauf verbracht hat. In diesem Fall war die CPU fast die Hälfte der Zeit im Leerlauf. Wenn wir unsere CPU optimieren, um ständig etwas zu tun, ist das kein gutes Zeichen.
Die endgültige Zahl, 5.91, ist eine Messung der letzten 15 Minuten. Wenn Sie eine Acht-Kern-CPU verwenden, ist diese Zahl nicht besonders schockierend. Wenn Sie eine Dual-Core-CPU verwenden, bedeutet eine Zahl wie 5.91, dass Ihre CPU sehr überlastet ist., Benutzer warten regelmäßig auf CPU-Zeit und erleben wahrscheinlich eine erheblich verschlechterte Leistung.
Unix vs. Linux CPU-Lasten
Wenn Sie es gewohnt sind, die CPU-Lastmessung in Unix zu verwenden, scheinen Ihnen einige dieser Zahlen ziemlich hoch zu sein. Das liegt daran, dass Unix und Linux die CPU-Last unterschiedlich messen. Unix misst die CPU-Auslastung ausdrücklich als Maß für Programme, die aktiv die CPU-Verarbeitung verwenden oder darauf warten. Linux misst die Dinge etwas anders und versteht, wie wichtig eine gute Systemadministration ist.,
Linux misst die CPU-Auslastung, indem es Programme betrachtet, die derzeit CPU-Zeit verwenden oder darauf warten, zusätzlich zu Programmen, die sich in Wartezuständen befinden. Zum Beispiel würde ein Programm, das auf eine Netzwerkanforderung wartet oder etwas von einer Festplatte lädt, nicht auf die CPU-Auslastung unter Unix zählen. Unter Linux tut es das. Ob dies ein besserer oder ein schlechterer Ansatz ist, hängt von Ihrem Anwendungsfall ab. Wenn Sie nur die gesamte CPU-Auslastung messen möchten, bietet Unix eine bessere Schnittstelle., Wenn Sie jedoch ein Programm haben, das 30 Sekunden lang gesperrt ist und auf eine Netzwerkanforderung wartet, wird Linux Ihnen dies mitteilen. Unix würde diese Daten niemals auftauchen.
CPU-Lasten optimieren
Es gibt keine Silberkugel für die Optimierung Ihrer CPU-Lasten. Es ist ein Prozess, den Sie ganzheitlich angehen müssen. Ähnlich wie bei der CPU-Auslastung möchten Sie auf einem Server nahe bei 100% sein, aber nicht über. Manchmal ist der Prozess der Optimierung Ihrer CPU-Auslastung ziemlich einfach. Möglicherweise verwendet Ihr Server immer nur zwei Threads gleichzeitig., In diesem Fall ist die Optimierung der Serverlasten nicht komplizierter als mit einem Dual-Core-Prozessor. Möglicherweise benötigen Sie einen schnelleren Prozessor, um sicherzustellen, dass diese Programme rechtzeitig abgeschlossen sind, aber Sie benötigen nie mehr als zwei Kerne.
Die meisten Systeme beschränken sich jedoch nicht auf genau zwei aktive Threads. Die meisten Server sind viel komplizierter. Und eine der wirklichen Herausforderungen besteht darin, die Anzahl der Kerne so niedrig wie möglich zu halten, da Sie dadurch Geld sparen, ohne zu niedrig zu werden und die Benutzererfahrungen zu beeinträchtigen. Es kann sein, dass Sie den Code optimieren müssen, den Ihr Server ausführt., Manchmal müssen Sie feststellen, wie viel Programmzeit durch Warten auf Datenbankabfragen verbraucht wird. Es könnte sein, dass Sie die Kernanzahl Ihres Prozessors wirklich erhöhen müssen. Engpassserver können eine Reihe von Ursachen haben und auf verschiedene Arten behoben werden.
Wie ist Ihre CPU-Last?
Die Überwachung und Optimierung Ihrer CPU-Auslastung ist ein wichtiger Teil, um das Beste aus Ihrem Serverspeicher herauszuholen. Leider ist es auch ein zeitaufwendiger, manueller Prozess. Wie bereits erwähnt, bieten die meisten Linux-Befehle nur CPU-Auslastung für 15-minütige Fenster., Das ist eine gute Sache; Sie möchten nicht, dass Fenster viel breiter sind. Es fällt Ihnen schwer, nützliche Informationen daraus zu ziehen. Es ist jedoch eine Art Kopfschmerz, die CPU-Last über alle 15-Minuten-Perioden im Auge zu behalten.
Glücklicherweise gibt es gute Werkzeuge, um diese Art von Dingen für Sie zu überwachen. Zum Beispiel kann Scalyr die CPU-Auslastung überwachen, indem er nur einige Protokolle aufnimmt. Sie erhalten nicht nur einen einfachen numerischen Ausdruck., Stattdessen erhalten Sie ein schönes Bild, das Ihre gesamte CPU-Auslastung im Laufe der Zeit anzeigt. Dies kann besonders nützlich sein, da Sie bestimmte Fenster lokalisieren können, die für Ihre CPU am anspruchsvollsten sind. Die Optimierung der Leistung Ihres Servers bedeutet, sie im Detail und nicht nur auf hohem Niveau zu verstehen.
Ein guter Systemadministrator zu sein bedeutet, Ihren Server aus jeder Richtung zu verstehen. Zu wissen, wie man die CPU-Auslastung interpretiert und optimiert, ist ein wesentlicher Bestandteil der Maximierung der Serverinvestitionen Ihres Unternehmens., Bevor Sie das tun können, müssen Sie verstehen, wie hoch die CPU-Auslastung Ihres Servers tatsächlich ist. Es gibt keinen besseren Tag als heute, um mit der Überwachung der CPU-Auslastung Ihres Servers zu beginnen. Sie können heute mit der Formulierung eines Optimierungsplans beginnen.
Dieser Beitrag wurde von Eric Boersma geschrieben. Eric ist ein Softwareentwickler und Entwicklungsmanager, der alles getan hat, von IT-Sicherheit in Pharmazeutika über das Schreiben von Geheimdienstsoftware für die US-Regierung bis hin zum Aufbau internationaler Entwicklungsteams für gemeinnützige Organisationen., Er liebt es, über die Dinge zu sprechen, die er auf dem Weg gelernt hat, und er hört gerne zu und lernt auch von anderen.