nodeWas soll ich tun, wenn die Service-CPU zu hoch ist? Wie überprüfen? Der folgende Artikel wird die Fehlerbehebungsideen für eine zu hohe Knotendienst-CPU klären und mit Ihnen teilen. Ich hoffe, er wird Ihnen hilfreich sein!
Helfen Sie einem Kollegen, ein Problem mit übermäßiger CPU zu untersuchen.
top
]
[root@*** ~]# top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 680 root 20 0 2290976 168176 34976 S 30.3 2.0 103:42.59 node 687 root 20 0 2290544 166920 34984 R 26.3 2.0 96:26.42 node 52 root 20 0 1057412 23972 15188 S 1.7 0.3 11:25.97 **** 185 root 20 0 130216 41432 25436 S 0.3 0.5 1:03.44 **** ...
vmstat
[root@*** ~]# vmstat 2 procs -----------memory---------------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233481328 758304 20795516 0 0 0 1 0 0 0 0 100 0 0 0 0 0 233480800 758304 20795520 0 0 0 0 951 1519 0 0 100 0 0 0 0 0 233481056 758304 20795520 0 0 0 0 867 1460 0 0 100 0 0 0 0 0 233481408 758304 20795520 0 0 0 20 910 1520 0 0 100 0 0 0 0 0 233481680 758304 20795520 0 0 0 0 911 1491 0 0 100 0 0 0 0 0 233481920 758304 20795520 0 0 0 0 889 1530 0 0 100 0 0
top
命令二: vmstat
Speicher
swpd #Die Größe des verwendeten virtuellen Speichers bedeutet, dass der physische Speicher Ihres Computers nicht ausreicht. Wenn dies nicht die Ursache für den Speicherverlust des Programms ist, sollten Sie den Speicher aktualisieren oder speicherintensive Aufgaben auf andere Maschinen migrieren.
buff #Linux/Unix-System wird zum Speichern und Zwischenspeichern des Verzeichnisinhalts, von Berechtigungen usw. verwendet.
cache #cache wird direkt verwendet, um sich die Dateien zu merken, die wir öffnen und bearbeiten Die Dateiverarbeitungspufferung nutzt einen Teil des freien physischen Speichers zum Zwischenspeichern von Dateien und Verzeichnissen, um die Leistung der Programmausführung zu verbessern. Wenn das Programm Speicher verwendet, wird der Puffer/zwischengespeicherte Speicher schnell verbraucht.
swap
si #Die Größe des pro Sekunde von der Festplatte gelesenen virtuellen Speichers bedeutet, dass der physische Speicher nicht ausreicht oder der Speicher verloren geht verarbeiten und lösen. Meine Maschine verfügt über ausreichend Speicher und alles funktioniert einwandfrei.
io
bi #Die Anzahl der Blöcke, die das Blockgerät pro Sekunde empfängt. Das Blockgerät bezieht sich hier auf alle Festplatten und anderen Blockgeräte im System. Die Standardblockgröße beträgt 1024 Byte.
system
in #Die Anzahl der CPU-Interrupts pro Sekunde, einschließlich Zeitinterrupts
sy #System-CPU-Zeit: Wenn sie zu hoch ist, bedeutet dies, dass die Systemaufrufzeit lang ist, z. B. bei häufigen E/A-Vorgängen.
id #Leerlauf-CPU-Zeit, im Allgemeinen ist id + us + sy = 100, im Allgemeinen denke ich, dass id die CPU-Auslastung im Leerlauf ist, us die CPU-Auslastung des Benutzers und sy die CPU-Auslastung des Systems.
wt #Warten auf IO-CPU-Zeit.
Üben
procs r: Es laufen viele Prozesse und das System ist sehr ausgelastet.
bi/bo: Die auf die Festplatte geschriebene Datenmenge ist etwas größer. Wenn es sich um eine große Datei handelt, besteht im Grunde kein Grund zur Sorge Wenn es sich um eine kleine Datei handelt, ist es grundsätzlich normal, wenn sie weniger als 2 MB beträgt Über einen längeren Zeitraum können Sie eine Optimierung in Betracht ziehen
cpu sy: Der Referenzwert von us + sy beträgt hier 80 %. Wenn us + sy größer als 80 % ist, bedeutet dies, dass möglicherweise nicht genügend CPU vorhanden ist.
cpu wa: Die Spalte zeigt den Prozentsatz der CPU-Zeit an, die durch E/A-Wartezeiten belegt ist. Der Referenzwert von wa beträgt hier 30 %, was bedeutet, dass die E/A-Wartezeit schwerwiegend ist. Dies kann durch eine große Anzahl zufälliger Zugriffe auf die Festplatte oder durch einen Bandbreitenengpass verursacht werden die Festplatte oder der Festplattenzugriffscontroller (hauptsächlich Blockoperationen)
Referenzlink: https://www.cnblogs.com/zsql/p/11643750.html
Überprüfen Sie das Online-Commit, überprüfen Sie den Codeunterschied und prüfen Sie, ob Sie das Problem finden können
Zum Beispiel ist der Downstream-RPC vom lokalen isoliert, sodass Sie nur Code hinzufügen können, um ein Profil zu erstellennodejs.org/docs/latest…
Nachdem Sie die Profildatei erhalten haben, öffnen Sie sie mit Chrome devtool
Kombinieren Sie den Profiler und den Code-Diff, um die Ursache zu finden. Sie können die Profildatei auch auf www.speedscope.app/
hochladen (Datei hochladen), um das Flammendiagramm des CPU-Profils zu erhalten (Detailliertere Einführung in die Verwendung:5. Drucktestüberprüfung
Sie können ab verwenden , oder andere Drucktest-ToolsZusammenfassung Finden Sie den Grund
nodejs-Tutorial!
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die Knotendienst-CPU zu hoch ist? Lassen Sie uns über Ideen zur Fehlerbehebung sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!