


Ausführliche Erläuterung des Problems der durchschnittlichen Last unter Linux
Der Inhalt dieses Artikels ist eine detaillierte Erklärung des Problems der durchschnittlichen Linux-Last. Ich hoffe, dass er für Freunde hilfreich ist.
In einem Interview stellte der Interviewer eine Frage: Die CPU-Auslastung ist nicht hoch, aber die Auslastung (durchschnittliche Auslastung) ist sehr hoch.
Ich verstand damals die Bedeutung von Load nicht. Der Interviewer erklärte, dass dieser Indikator mehr Prozesse in einem unterbrechungsfreien Zustand widerspiegelt. Basierend auf meiner bisherigen Back-End-Entwicklungserfahrung habe ich geantwortet, dass es möglicherweise zu mehr Io-Blockierungen im System kommt, was hauptsächlich bei Netzwerk-Io-Problemen auftritt. Verwenden Sie den Befehl netstat -tnp, um zu sehen, ob in der TCP-Verbindung viel time_wait-Status vorhanden ist. ..
Ich weiß, dass meine Antwort sehr einseitig war, also habe ich sie noch einmal überprüft und mir anschließend Notizen gemacht.
Was ist der Lastdurchschnitt?
Wer mit Linux vertraut ist, weiß, dass Sie den Top-Uptime-Befehl verwenden können, um den Lastdurchschnittsindikator anzuzeigen.
Verwenden Sie die Betriebszeit von man, um den Lastdurchschnitt anzuzeigen. Erläuterung:
Der Systemlastdurchschnitt ist die durchschnittliche Anzahl von Prozessen, die sich entweder in einem ausführbaren oder unterbrechungsfreien Zustand befinden CPU oder wartet auf die Nutzung der CPU. Ein Prozess wartet auf einen E/A-Zugriff, z. B. auf die Festplatte. Die Durchschnittswerte werden nicht für die Anzahl der CPUs in einem System ermittelt , ein Auslastungsdurchschnitt von 1 bedeutet also, dass ein einzelnes CPU-System die ganze Zeit ausgelastet ist, während es auf einem 4-CPU-System bedeutet, dass es 75 % der Zeit im Leerlauf war.
Verstehen Sie den entscheidenden Punkt, auf den sich die durchschnittliche Auslastung bezieht Die Einheit Innerhalb eines bestimmten Zeitraums wird die durchschnittliche Anzahl der Prozesse im System, die sich im „ausführbaren Zustand“ und im „unterbrechungsfreien Zustand“ befinden, als durchschnittliche Anzahl aktiver Prozesse bezeichnet. Es ist erwähnenswert, dass es nicht direkt mit der CPU-Auslastung zusammenhängt.
Verwenden Sie den Befehl ps aux, um den Statusstatus des Prozesses anzuzeigen, wie in diesem Artikel beschrieben:
R-Status, ausführbarer Status (Running / Runnable), der D-Status des Prozesses, der die CPU nutzt oder auf die CPU wartet, der unterbrechungsfreie Status (Uninterrupttitle Sleep, auch Disk Sleep genannt), der Prozess, der sich im kritischen Prozess des Kernel-Status befindet, und ist unterbrechungsfrei.
Warum kann der D-Status nicht unterbrochen werden? Um die Konsistenz der Daten sicherzustellen, ruft das System beispielsweise die E/A-Antwort des Hardwaregeräts auf. Es kann keine anderen Prozesse unterbrechen oder Interrupts werden unterbrochen, was leicht zu Inkonsistenzen zwischen Festplattendaten und Prozessdaten führen kann. Daher ist der unterbrechungsfreie (D) Zustand ein Schutzmechanismus des Systems für Prozesse und Hardwaregeräte.
Die durchschnittliche Anzahl aktiver Prozesse ist streng genommen der exponentiell abnehmende Durchschnitt der Anzahl aktiver Prozesse (die Abnahmerate einer bestimmten Menge ist proportional zu ihrem Wert). Normalerweise kann darunter die Anzahl aktiver Prozesse pro Zeiteinheit verstanden werden.
CPU-Auslastung und ausgeglichene Last
Aus CPU-Sicht spiegelt der Lastdurchschnitt nur die Anzahl der Prozesse wider, die die CPU pro Zeiteinheit belegen, und die CPU-Auslastung steht nicht in direktem Zusammenhang mit der Anzahl der Prozesse. Wir können den Befehl top vmstat verwenden, um die CPU-Auslastung zu überprüfen. Es gibt die folgenden Indikatoren:
%us: zeigt die CPU-Auslastung des User-Space-Programms an (nicht von nice geplant) %sy: zeigt die CPU-Auslastung an des Systemraums, hauptsächlich Kernel-Programme. %ni: Zeigt die CPU-Auslastung von Programmen im Benutzerbereich an und wird über Nice geplant. %id: CPU im Leerlauf %wa: Die Zeit, die die CPU beim Ausführen auf IO wartet %hi: Die Anzahl der von der CPU verarbeiteten Hard-Interrupts %si: Die Anzahl der von der CPU verarbeiteten Soft-Interrupts %st: Vom Virtuellen gestohlene CPU Maschine
So messen Sie eine angemessene durchschnittliche Auslastung
Im Allgemeinen erfüllt die Maschinenleistung die Serviceanforderungen, wenn die durchschnittliche Auslastung niedriger ist als die Anzahl der CPUs. Es spielt keine Rolle, ob sie überschritten wird Die Zahl stellt nicht direkt die CPU-Auslastung dar und kann auf mehr IO-Blockierung zurückzuführen sein. Wenn die durchschnittliche Auslastung mehr als 70 % der CPU-Anzahl beträgt, kann dies dazu führen, dass der Prozess langsam reagiert und somit die normale Funktion des Dienstes beeinträchtigt wird.
Aus der Perspektive historischer Veränderungen
Im Allgemeinen liefert die Top-Verfügbarkeit Indikatoren für die durchschnittliche Auslastung zu drei Zeitpunkten, nämlich: 1 Minute, 5 Minuten und 15 Minuten. Dies spiegelt den jüngsten Zustandsänderungstrend des Systems wider. In der tatsächlichen Produktionsumgebung müssen wir langfristige Überwachungsaufzeichnungen erstellen. Bei abnormalen numerischen Änderungen, beispielsweise wenn die durchschnittliche Auslastung doppelt so hoch ist wie die der CPU, muss das Problem analysiert und untersucht werden.
Umfassende Analyse der Unterschiede zwischen den beiden Indikatoren
Aus den beiden Indikatoren für ausgeglichene Last und CPU-Auslastung werden die folgenden möglichen Situationen kombiniert:
Der Lastdurchschnitt ist hoch, CPU Bei hoher Auslastung werden entweder CPU-intensive Prozesse (Threads) ausgeführt, oder es gibt eine große Anzahl von Prozessen (Threads), die auf die CPU-Planung warten. Der Lastdurchschnitt ist hoch, und bei geringer CPU-Auslastung ist die CPU-Auslastung hoch Beide Prozesse laufen relativ niedrig und die normale Auslastung ist gering. Dies gibt es nicht.
Simulationsfälle und Tools
Wie können wir Fälle mit verschiedenen Kombinationen davon analysieren? zwei Indikatoren für ausgeglichene Last und CPU-Auslastung und finden Sie die Quelle der Indikatoränderungen?
Die folgende Umgebung ist Linux Arch 4.19 / 4 CPU / 8G Speicher
Toolliste
Stresssystem-Stresstest-Tool
Sysstat-Leistungsanalyse-Toolpaket:
mpstat Multi-Core-CPU-Analyseleistungstool, mp bedeutet Multiprozessoren (Multiprozessor) pidstat Prozessleistungsanalysetool, pid bedeutet Prozess-ID. Es wird verwendet, um die CPU-, Speicher-, E/A- und Kontextwechselindikatoren des Prozesses anzuzeigen
Simulationsszenarien
Mit Stress können die folgenden Szenarien simuliert werden
CPU-intensiv Prozesse
# 模拟一个进程, 对 cpu 使用率 100%,限时 600s stress --cpu 1 --timeout 600
IO-intensiver Prozess
Stress's -i-Option, spawnen N Arbeiter, die sich bei sync() drehen
# 模拟一个进程不停的执行 sync stress -i 1 --timeout 600
# 模拟16个进程, 对 cpu 使用率 100%,限时 600s stress --cpu 16 --timeout 600
Tool-Indikatoren
mpstat -P ALL 5 überwacht alle CPUs und gibt alle 5 Sekunden einen Datensatz aus. Achten Sie auf die Indikatoren %usr-Nutzung und %iowait IO-Blockierungszeit ist CPU-intensiv oder IO-intensiv pidstat - u 5 1 Die Daten von Prozessen, die die CPU innerhalb von 5 Sekunden nach dem statistischen Intervall genutzt haben. Achten Sie auf die Indikatoren %usr-Nutzungsrate und %Wartezeit, um die CPU zu nutzen , können Sie beurteilen, ob zu viele Prozesse (Threads) vorhanden sind
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Problems der durchschnittlichen Last unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

Die Gründe für die Installation von VS -Code -Erweiterungen können sein: Netzwerkinstabilität, unzureichende Berechtigungen, Systemkompatibilitätsprobleme, VS -Code -Version ist zu alt, Antiviren -Software oder Firewall -Interferenz. Durch Überprüfen von Netzwerkverbindungen, Berechtigungen, Protokolldateien, Aktualisierungen von VS -Code, Deaktivieren von Sicherheitssoftware und Neustart von Code oder Computern können Sie Probleme schrittweise beheben und beheben.

Obwohl Notepad den Java -Code nicht direkt ausführen kann, kann er durch Verwendung anderer Tools erreicht werden: Verwenden des Befehlszeilencompilers (JAVAC), um eine Bytecode -Datei (Dateiname.class) zu generieren. Verwenden Sie den Java Interpreter (Java), um Bytecode zu interpretieren, den Code auszuführen und das Ergebnis auszugeben.

VS Code ist der vollständige Name Visual Studio Code, der eine kostenlose und open-Source-plattformübergreifende Code-Editor und Entwicklungsumgebung von Microsoft ist. Es unterstützt eine breite Palette von Programmiersprachen und bietet Syntax -Hervorhebung, automatische Codebettel, Code -Snippets und intelligente Eingabeaufforderungen zur Verbesserung der Entwicklungseffizienz. Durch ein reiches Erweiterungs -Ökosystem können Benutzer bestimmte Bedürfnisse und Sprachen wie Debugger, Code -Formatierungs -Tools und Git -Integrationen erweitern. VS -Code enthält auch einen intuitiven Debugger, mit dem Fehler in Ihrem Code schnell gefunden und behoben werden können.

VS -Code ist auf Mac verfügbar. Es verfügt über leistungsstarke Erweiterungen, GIT -Integration, Terminal und Debugger und bietet auch eine Fülle von Setup -Optionen. Für besonders große Projekte oder hoch berufliche Entwicklung kann VS -Code jedoch Leistung oder funktionale Einschränkungen aufweisen.

Visual Studio Code (VSCODE) ist ein plattformübergreifender, Open-Source-Editor und kostenloser Code-Editor, der von Microsoft entwickelt wurde. Es ist bekannt für seine leichte, Skalierbarkeit und Unterstützung für eine Vielzahl von Programmiersprachen. Um VSCODE zu installieren, besuchen Sie bitte die offizielle Website, um das Installateur herunterzuladen und auszuführen. Bei der Verwendung von VSCODE können Sie neue Projekte erstellen, Code bearbeiten, Code bearbeiten, Projekte navigieren, VSCODE erweitern und Einstellungen verwalten. VSCODE ist für Windows, MacOS und Linux verfügbar, unterstützt mehrere Programmiersprachen und bietet verschiedene Erweiterungen über den Marktplatz. Zu den Vorteilen zählen leicht, Skalierbarkeit, umfangreiche Sprachunterstützung, umfangreiche Funktionen und Versionen

Zu den Hauptanwendungen von Linux gehören: 1. Server -Betriebssystem, 2. Eingebettes System, 3. Desktop -Betriebssystem, 4. Entwicklungs- und Testumgebung. Linux zeichnet sich in diesen Bereichen aus und bietet Stabilität, Sicherheits- und effiziente Entwicklungstools.

Um die Git -Repository -Adresse anzuzeigen, führen Sie die folgenden Schritte aus: 1. Öffnen Sie die Befehlszeile und navigieren Sie zum Repository -Verzeichnis; 2. Führen Sie den Befehl "git remote -v" aus; 3.. Zeigen Sie den Repository -Namen in der Ausgabe und der entsprechenden Adresse an.
