Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So legen Sie die Bandbreite der Linux-Instanz fest und beheben Probleme, wenn die CPU voll oder hoch ist

So legen Sie die Bandbreite der Linux-Instanz fest und beheben Probleme, wenn die CPU voll oder hoch ist

坏嘻嘻
坏嘻嘻Original
2018-09-28 14:22:573312Durchsuche

Anhand der Einführung in die Einstellung der Bandbreite einer Linux-Instanz und der Fehlerbehebung, ob die CPU voll oder hoch ist, konzentriert sich dieser Artikel auf die spezifischen Schritte. Der Inhalt dieses Artikels ist kompakt und ich hoffe, dass Sie etwas gewinnen können davon.

Linux-Instanzbandbreite und CPU sind voll oder laufen auf Hochtouren. Fehlerbehebung

Wenn bei der Verwendung von Cloud-Server-ECS der Dienst langsamer wird oder die ECS-Instanz plötzlich die Verbindung trennt, können Sie die Serverbandbreite und die CPU-Werte berücksichtigen Gibt es ein Problem mit dem Voll- oder Hochbetrieb? Wenn Sie im Voraus eine Alarmaufgabe erstellen, sendet das System automatisch eine Alarmerinnerung, wenn die Bandbreite und die CPU voll oder hoch sind. Unter einem Linux-System können Sie die folgenden Schritte zur Fehlerbehebung ausführen:

Lokalisieren Sie das Problem. Finden Sie die spezifischen Prozesse, die sich auf die Bandbreite und die volle oder hohe CPU-Auslastung auswirken.

Analyse und Verarbeitung. Überprüfen Sie, ob die Prozesse, die sich auf Bandbreite und CPU auswirken, voll oder hoch sind, normal sind, und klassifizieren Sie sie für die Verarbeitung.

Für normale Prozesse: Sie müssen das Programm optimieren oder die Serverkonfiguration aktualisieren.

Bei abnormalen Prozessen: Sie können den Prozess manuell überprüfen und beenden oder Sie können Sicherheitstools von Drittanbietern verwenden, um den Prozess zu überprüfen und zu beenden.

Die relevanten Konfigurationen und Anweisungen in diesem Artikel wurden auf dem 64-Bit-Betriebssystem CentOS 6.5 getestet. Die Konfiguration anderer Betriebssystemtypen und -versionen kann abweichen. Einzelheiten entnehmen Sie bitte der offiziellen Dokumentation des entsprechenden Betriebssystems.

Wenn die CPU des Cloud-Server-ECS-Linux-Systems weiterhin hoch läuft, beeinträchtigt dies die Systemstabilität und den Geschäftsbetrieb. In diesem Artikel wird kurz die Fehlerbehebung und Analyse des Problems der hohen CPU-Auslastung erläutert.

Problemort der CPU, die voll oder hoch läuft

Wenn die CPU des Cloud-Servers ECS weiterhin hoch läuft, beeinträchtigt dies die Stabilität und Die Stabilität des Geschäftsbetriebs ist beeinträchtigt. In Linux-Systemen lauten die üblichen Befehle zum Anzeigen von Prozessen wie folgt:

ps -aux
ps -ef
top

In Linux-Systemen wird der Top-Befehl normalerweise verwendet, um Systemlastprobleme anzuzeigen und Prozesse zu finden, die mehr CPU-Ressourcen verbrauchen.

Vorgangsschritte

Stellen Sie über das Konsolenverwaltungsterminal eine Verbindung zur ECS-Instanz her, siehe Herstellen einer Verbindung zur ECS-Instanz mithilfe der Remote-Verbindungsfunktion.

Hinweis: Bei abnormaler Ressourcenauslastung ist eine Remoteverbindung über SSH normalerweise nicht möglich. Es wird empfohlen, eine Verbindung über das Konsolenverwaltungsterminal herzustellen.

Zeigen Sie den aktuellen Betriebsstatus des Systems über den oberen Befehl an.

 top - 17:27:13 up 27 days,  3:13,  1 user,  load average: 0.02, 0.03, 0.05
 Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
 %Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.1 st
 KiB Mem:   1016656 total,   946628 used,    70028 free,   169536 buffers
 KiB Swap:        0 total,        0 used,        0 free.   448644 cached Mem
 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1 root      20   0   41412   3824   2308 S  0.0  0.4   0:19.01 systemd
 2 root      20   0       0      0      0 S  0.0  0.0   0:00.04 kthreadd

Bei Ladeproblemen müssen Sie nur auf die erste und dritte Zeile der zurückgegebenen Informationen achten. Die Details sind wie folgt.

Der in der ersten Zeile des oberen Befehls angezeigte Inhalt ist 17:27:13 bis 27 Tage, 3:13, 1 Benutzer, Lastdurchschnitt: 0,02, 0,03, 0,05, was die aktuelle Zeit des ist System und die Zeit, die das System bisher erreicht hat. Die Laufzeit, die Anzahl der aktuell am System angemeldeten Benutzer und die Systemlast stimmen mit den Abfrageergebnissen der direkten Ausführung des Uptime-Befehls überein.

In der dritten Zeile des oberen Befehls wird die aktuelle Gesamtnutzung der CPU-Ressourcen angezeigt, und die Ressourcennutzung jedes Prozesses wird unten angezeigt.

Verwenden Sie die Buchstabentaste P, um die CPU-Auslastung in umgekehrter Reihenfolge zu sortieren und die Prozesse zu finden, die eine höhere CPU im System belegen.

Hinweis: Mit der Buchstabentaste M können Sie die Systemspeichernutzung sortieren. Wenn eine Multi-Core-CPU vorhanden ist, kann mit der Zifferntaste 1 der Auslastungsstatus jeder Core-CPU angezeigt werden.

Sie können die Programmdatei, die jeder Prozess-ID entspricht, über ll /proc/PID/exe anzeigen.

Analyse und Verarbeitung von CPU, die voll oder hoch läuft

CPU, die voll oder hoch läuft, nach Bestätigung der spezifischen Prozessergebnisse, Für abnormal Prozesse müssen Sie über den Befehl top beenden. Bei Problemen wie unzureichendem Speicher, der durch den kswapd0-Prozess verursacht wird, müssen Sie die Systemspezifikationen aktualisieren oder das Programm optimieren.

Verwenden Sie top, um den Prozess, der viel CPU verbraucht, direkt zu beenden

Sie können den entsprechenden abnormalen Prozess direkt in der Top-Ausführung schnell beenden Schnittstelle. Hier sind die Schritte:

Wenn Sie einen Prozess beenden möchten, drücken Sie einfach die Kleinbuchstaben-Taste „k“.

Geben Sie die PID des Prozesses ein, den Sie beenden möchten (die erste Spalte der oberen Ausgabe). Wenn Sie beispielsweise den Prozess mit PID 86 beenden möchten, geben Sie 86 ein und drücken Sie die Eingabetaste.

Nachdem der Vorgang erfolgreich war, wird auf der Benutzeroberfläche eine Meldung ähnlich der Meldung „Send pid 86 signal [15/sigterm]“ angezeigt. Drücken Sie zur Bestätigung einfach die Eingabetaste.

Die Auslastung des kswapd0-Prozesses führt zu einer hohen CPU-Auslastung

Das Betriebssystem verwendet den Paging-Mechanismus, um den physischen Speicher zu verwalten, und das System wird dies tun Virtualisieren Sie einen Teil des Festplattenspeichers in Speichernutzung. Da der Speicher viel schneller ist als die Festplatte, muss das System einem bestimmten Paging-Mechanismus folgen, um unnötige Seiten auf die Festplatte auszulagern und die erforderlichen Seiten in den Speicher zu übertragen.

kswapd0 ist der Prozess, der für das Paging in der virtuellen Speicherverwaltung verantwortlich ist. Wenn der Serverspeicher nicht ausreicht, führt kswapd0 einen Paging-Vorgang durch. Dieser Paging-Vorgang verbraucht viele Host-CPU-Ressourcen. Die Schritte sind wie folgt:

Sehen Sie sich den kswapd0-Prozess über den oberen Befehl an.

检查该进程是否持续处于非睡眠状态,且运行时间较长。若是,可以初步判定系统在持续地进行换页操作,kswapd0 进程占用了系统大量 CPU 资源。

So legen Sie die Bandbreite der Linux-Instanz fest und beheben Probleme, wenn die CPU voll oder hoch ist

您可以通过 free 、ps 等指令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。

针对系统当前内存不足的问题,您可以重启 Apache,释放内存。

说明:从长远的角度来看,您需要对内存进行升级。

带宽跑满或跑高的分析处理

对于正常进程导致的带宽跑满或跑高的问题,需要对服务器的带宽进行升级。对于异常进程,有可能是由于恶意程序问题,或者是部分 IP 恶意访问导致,也可能是服务遭到了 CC 攻击。

通常情况下,您可以使用 iftop 工具或 nethogs 查看流量的占用情况,进而定位到具体的进程。

使用 iftop 工具排查

在服务器内部安装 iftop 流量监控工具。

 yum install iftop -y

 服务器外网带宽被占满时,如果通过远程无法登陆,可通过阿里云终端管理进入到服务器内部,运行下面命令查看流量占用情况:

 iftop -i eth1 -P

注意:-P 参数将会显示请求端口。执行 iftop -i eth0 -P 命令,可以查看通过服务器哪个端口建立的连接,以及内网流量。举例如下:

在上图中,您可以查看到流量高耗的是服务器上 53139 端口和 115.205.150.235 地址建立的连接。

执行 netstat 命令反查 53139 端口对应的进程。

 netstat -tunlp |grep 53139

 经反查,服务器上 vsftpd 服务产生大量流量,您可以通过停止服务或使用 iptables 服务来对指定地址进行处理,如屏蔽 IP 地址或限速,以保证服务器带宽能够正常使用。

使用 nethogs 进行排查

在服务器内部安装 nethogs 流量监控工具。

 yum install nethogs -y

通过 nethogs 工具来查看网卡上进程级的流量信息,若未安装可以通过 yum、apt-get 等方式安装。举例如下:

若 eth1 网卡跑满,执行命令 nethogs eth1。

查看每个进程的网络带宽情况以及进程对应的 PID。

确定导致带宽跑满或跑高的具体进程。

若进程确定是恶意程序,可以通过执行 kill -TERM 来终止程序。

说明: 如果是 Web 服务程序,您可以使用 iftop 等工具来查询具体 IP 来源,然后分析 Web 访问日志是否为正常流量。日志分析可以使用 logwatch 或 awstats 等工具进行。

使用 Web 应用防火墙防御 CC 攻击

若您的服务遭受了 CC 攻击,请在 Web 应用防火墙控制台尽快开启 CC 安全防护。

登录 Web应用防火墙 控制台。

在 CC 安全防护中,启动状态按钮,并在模式中选择 正常。

So legen Sie die Bandbreite der Linux-Instanz fest und beheben Probleme, wenn die CPU voll oder hoch ist

Das obige ist der detaillierte Inhalt vonSo legen Sie die Bandbreite der Linux-Instanz fest und beheben Probleme, wenn die CPU voll oder hoch ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn