Heim > Artikel > Betrieb und Instandhaltung > So lösen Sie das Problem der 100 % CPU-Auslastung
Lösung für 100 % CPU-Auslastung: Finden Sie zunächst den spezifischen Prozess, der die hohe CPU-Auslastung beeinflusst, und prüfen Sie dann, ob der Prozess, der die hohe CPU-Auslastung beeinflusst, normal ist.
Die Betriebsumgebung dieses Artikels: Windows Server 2008-System, Dell G3-Computer.
Wie kann das Problem der 100 % CPU-Auslastung gelöst werden?
Dieser Artikel stellt hauptsächlich die Fehlerbehebung und Lösungen für das Problem der hohen CPU-Auslastung in Windows-Instanzen vor.
Alibaba Cloud erinnert Sie:
- Wenn Sie riskante Vorgänge wie das Modifizieren oder Ändern der Instanz oder Daten durchführen, müssen Sie auf die Katastrophentoleranz und Fehlertoleranz der Instanz achten, um die Datensicherheit zu gewährleisten.
- Wenn Sie Konfigurations- und Datenänderungen an Instanzen (einschließlich, aber nicht beschränkt auf ECS, RDS) usw. vornehmen, wird empfohlen, vorab Snapshots zu erstellen oder die RDS-Protokollsicherung und andere Funktionen zu aktivieren.
- Wenn Sie Sicherheitsinformationen wie Anmeldekonto und Passwort auf der Alibaba Cloud-Plattform autorisiert oder übermittelt haben, wird empfohlen, diese rechtzeitig zu ändern.
In diesem Artikel werden hauptsächlich die folgenden Schritte vorgestellt.
Positionierungsproblem. Finden Sie den spezifischen Prozess, der eine hohe CPU-Auslastung verursacht.
Analyse und Verarbeitung. Überprüfen Sie, ob der Prozess, der eine hohe CPU-Auslastung verursacht, normal ist, und klassifizieren Sie ihn zur Verarbeitung.
Bedienungsbeispiel. Stellen Sie den spezifischen Fehlerbehebungs- und Lösungsprozess vor.
Weitere Informationen. Machen Sie sich mit der Verwendung von Fehlerbehebungstools vertraut.
Microsoft verfügt über mehrere Tools, um das Problem übermäßiger CPU-Auslastung zu lokalisieren, z. B. Task-Manager, Ressourcenmonitor (Ressourcenmonitor), Leistungsmonitor (Leistungsmonitor), Prozess-Explorer, Xperf (Windows Server 2008 später), KernRate (Windows Server 2003), holen Sie sich den System-Full-Memory-Dump zur Überprüfung. Bei starkem Datenverkehr können Sie Wireshark auch verwenden, um Netzwerkpakete für einen bestimmten Zeitraum zu erfassen und die Verkehrsnutzung zu analysieren.
Tipps: Windows Server 2008 und höher-Systeme verwenden normalerweise den mit dem System gelieferten Ressourcenmonitor, um die CPU zu überwachen.
Klicken Sie auf das Menü „Start“ unten auf dem Desktop und wählen Sie „Ausführen“. Nachdem Sie das Ausführungsfeld geöffnet haben, geben Sie
in das Feld ein und klicken Sie aufperfmon -res
Überprüfen Sie auf der Ressourcenüberwachungsseite, ob jeder Prozess eine hohe CPU-Auslastung aufweist.
Überprüfen Sie bei Prozessen, die hohe Ressourcen beanspruchen, die entsprechende Prozess-ID und den Programmnamen des Prozesses.
Unter normalen Umständen, wenn Kunden häufig auf das Unternehmen zugreifen oder aufgrund von Windows-eigenen Diensten (Update-Dienste usw.), kann es zu einer hohen Auslastung des Netzwerkverkehrs und der CPU kommen. Bei hoher CPU-Auslastung, die durch normale Prozesse verursacht wird, beheben Sie die Fehler bitte nacheinander in der folgenden Reihenfolge.
Tipps
: Es wird empfohlen, dass die Speicherkonfiguration von Windows Server 2008- oder Windows Server 2012-Instanzen 2G oder höher beträgt.Überprüfen Sie, ob Windows Update im Hintergrund ausgeführt wird.
Es wird empfohlen, für den Virenschutz eine Antivirensoftware auf dem Server zu installieren. Wenn Sie eine Antivirensoftware installiert haben, prüfen Sie bitte, ob die Antivirensoftware bei hoher CPU-Auslastung Scanvorgänge im Hintergrund durchführt. Bitte aktualisieren Sie nach Möglichkeit die Antivirensoftware auf die neueste Version oder löschen Sie die Antivirensoftware.
Überprüfen Sie, ob die Anwendung innerhalb des ECS einen großen Festplattenzugriff, ein Netzwerkzugriffsverhalten oder hohe Rechenanforderungen hat. Versuchen Sie, die Instanzspezifikationen zu erhöhen und mehr Kerne oder Speicherspezifikationen zu verwenden, um Ressourcenengpässe zu beheben, z. B. durch die Aktualisierung von Konfigurationen.
Wenn Ihre Serverkonfiguration hoch ist, macht es wenig Sinn, die Konfiguration zu aktualisieren. In Bezug auf die Architektur bedeutet dies nicht, dass je höher die Serverkonfiguration, desto besser. Zu diesem Zeitpunkt müssen Sie versuchen, Anwendungen zu trennen und gleichzeitig verwandte Programme zu optimieren. Beispielanweisungen sind wie folgt.
Problembeschreibung
: Wenn mehrere Anwendungen wie MySQL, PHP und Web gleichzeitig auf einem Server bereitgestellt werden, kann es selbst bei relativ hoher Konfiguration leicht zu Anomalien bei der Ressourcenlast kommen.Tipps
: Wenn Sie nicht feststellen können, ob es sich bei dem Prozess um einen Virus oder Trojaner handelt, empfiehlt es sich, den Prozessnamen online zu suchen und zu bestätigen. Darüber hinaus wird empfohlen, vor dem Löschen des Vorgangs vorab einen Snapshot zu erstellen, um die Sicherung abzuschließen.Verwenden Sie kommerzielle Antivirensoftware oder verwenden Sie das kostenlose Sicherheitstool Microsoft Safety Scanner zum Scannen und Antivirenprogramm im abgesicherten Modus. Der Tool-Link lautet wie folgt.
Verwenden Sie MSconfig, um alle nicht von Microsoft stammenden Diensttreiber zu deaktivieren und zu prüfen, ob das Problem erneut auftritt. Informationen zu bestimmten Vorgängen finden Sie unter
So führen Sie einen sauberen Neustart im Windows-System durchWenn der Server oder die Site einen DDoS- oder CC-Angriff erleidet, wird in kurzer Zeit eine große Anzahl von Zugriffsanforderungen generiert. Sie können sich beim „Cloud Security Center“ anmelden, um zu überprüfen, ob der Schutzschwellenwert für DDoS-Angriffe in Cloud Shield angepasst wurde, und um zu überprüfen, ob der CC-Schutz aktiviert ist. Wenn der Angriff den Schwellenwert nicht auslöst und Cloud Shield nicht gereinigt wird, können Sie sich an den Kundendienst wenden, um mit der Reinigung zu beginnen.
Tipps: Bei Verwendung einer 1-Kern-1-GB-Instanz von Windows Server 2012 wird der Windows Update-Dienst automatisch aktualisiert und die CPU-Auslastung der Instanz steigt plötzlich an. Dies ist normal.
Lösung
Tipps: In diesem Artikel werden zahlreiche offizielle Dokumente und Tool-Links zitiert. Die Urheberrechte und Eigentumsrechte liegen vollständig bei Microsoft werden nicht rechtzeitig aktualisiert.
, geben Sie dann MSCONFIG ein, deaktivieren Sie alle nicht von Microsoft stammenden Diensttreiber und prüfen Sie dann, ob das Problem erneut auftritt. Relevante Referenzdokumente sind wie folgt.
Task-Manager
Überprüfen Sie visuell die Anwendungsliste und suchen Sie nach Anwendungen, die mehr CPU beanspruchen. Das Folgende ist die Seite des Task-Managers.Prozessor(_Total)% Prozessorzeit
die Summe aus Prozessor(*)% Benutzerzeit
und Prozessor(*)% privilegierte Zeit
. Prozessor(_Total)% Prozessorzeit
Prozessor(*)% Benutzerzeit
Processor(_Total)% Processor Time
是Processor(*)% User Time
与Processor(*)% Privileged Time
之和。Processor(_Total)% Processor Time
Processor(*)% User Time
Processor(*)% Privileged Time
Processor(*)% Privileged Time
是应用程序在内核中执行系统调用(例如驱动、IRP,上下文切换等)操作的时间。如果操作系统花费多余30%的时间在Privileged Time
,如下图所示,则说明实例正在进行高I/O吞吐相关的操作。% Privileged Time
很高时,需要进一步检查% DPC Time
、% Interrupt Time
以及Context Switches/sec
的情况。% DPC Time
、% Interrupt Time
意味着未知设备出现大量的操作或者很差的性能问题,请参考如下文档。Context Switches/sec
意味着有大量的线程处于Ready状态,需要减少线程的数量解决问题。% DPC Time
、% Interrupt Time
很高时,需使用Microsoft Xperf工具进一步分析,请参考如下文档使用XPerf工具。Processor(*)% User Time
表示处理器用于执行程序代码的时间消耗,可以确定哪个应用程序或函数调用消耗了较多的时间。User Time
Prozessor(*)% privilegierte Zeit
Processor(*)% Privileged Time
ist die Zeit, die die Anwendung Systemaufrufe (wie Treiber, IRPs, Kontextwechsel usw.) im Kernel ausführt. Wenn das Betriebssystem mehr als 30 % der Zeit in privilegierter Zeit
verbringt, wie in der folgenden Abbildung dargestellt, bedeutet dies, dass die Instanz Vorgänge im Zusammenhang mit einem hohen E/A-Durchsatz ausführt. % DPC Time
, % Interrupt Time
und Context Switches/sec
erforderlich Situation. % DPC-Zeit
und % Unterbrechungszeit
bedeuten, dass das unbekannte Gerät eine große Anzahl von Vorgängen oder schlechte Leistungsprobleme aufweist. Bitte beachten Sie die folgenden Dokumente. Kontextwechsel/Sek.
bedeutet, dass es viele gibt Der Thread befindet sich im Status „Bereit“ und die Anzahl der Threads muss reduziert werden, um das Problem zu lösen. 🎜🎜🎜🎜Wenn % DPC Time
und % Interrupt Time
sehr hoch sind, müssen Sie zur weiteren Analyse das Microsoft Xperf-Tool verwenden. Bitte beachten Sie das folgende Dokument das XPerf-Tool. 🎜🎜🎜Windows IT Pro Magazine: Untersuchen von xPerf🎜🎜🎜🎜🎜Wenn der Kontextwechselwert sehr hoch ist, lesen Sie bitte das folgende Dokument. 🎜🎜Der Fall der 2 Millionen Kontextwechsel🎜🎜🎜Mark Russinovich's The Case of the System Process CPU Spikes🎜🎜🎜🎜🎜Processor(*)% User Time
Gibt die Zeit an, die der Prozessor für die Ausführung von Programmcode benötigt, wodurch bestimmt werden kann, welche Anwendung verwendet wird oder Funktionsaufrufe nehmen mehr Zeit in Anspruch. 🎜🎜Die Situation bei hoher Benutzerzeit
ist in der folgenden Abbildung dargestellt. 🎜🎜🎜🎜🎜🎜🎜Anwendbar für 🎜🎜🎜Cloud Server ECS🎜🎜🎜Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der 100 % CPU-Auslastung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!