溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何設(shè)置Linux實例帶寬和CPU跑滿或跑高排查

發(fā)布時間:2020-09-18 13:50:56 來源:億速云 閱讀:261 作者:小新 欄目:建站服務(wù)器

這篇文章給大家分享的是有關(guān)如何設(shè)置Linux實例帶寬和CPU跑滿或跑高排查的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

Linux實例帶寬和CPU跑滿或跑高排查

使用云服務(wù)器 ECS 時,若出現(xiàn)服務(wù)的速度變慢,或 ECS 實例突然斷開,可以考慮服務(wù)器帶寬和 CPU 是否有跑滿或跑高的問題。若您預(yù)先創(chuàng)建報警任務(wù),當(dāng)帶寬和 CPU 跑滿或跑高時,系統(tǒng)將自動進(jìn)行報警提醒。Linux 系統(tǒng)下,您可以按如下步驟進(jìn)行排查:

定位問題。找到影響帶寬和 CPU 跑滿或跑高的具體進(jìn)程。

分析處理。排查影響帶寬和 CPU 跑滿或跑高的進(jìn)程是否正常,并分類進(jìn)行處理。

對于 正常進(jìn)程:您需要對程序進(jìn)行優(yōu)化或者升級服務(wù)器配置。

對于 異常進(jìn)程:您可以手動對進(jìn)程進(jìn)行查殺,也可以使用第三方安全工具去查殺。

本文相關(guān)配置及說明已在 CentOS 6.5 64 位操作系統(tǒng)中進(jìn)行過測試。其它類型及版本操作系統(tǒng)配置可能有所差異,具體情況請參閱相應(yīng)操作系統(tǒng)官方文檔。

如果云服務(wù)器 ECS Linux 系統(tǒng)的 CPU 持續(xù)跑高,則會對系統(tǒng)穩(wěn)定性和業(yè)務(wù)運行造成影響。本文對 CPU 占用率較高問題的排查分析做簡要說明。

CPU 跑滿或跑高的問題定位

若云服務(wù)器 ECS 的 CPU 持續(xù)跑高,會對系統(tǒng)的穩(wěn)定性和業(yè)務(wù)運行造成影響。Linux 系統(tǒng)下,查看進(jìn)程的常用命令如下:

ps -aux
ps -ef
top

Linux 系統(tǒng)中,通常使用 top 命令來查看系統(tǒng)的負(fù)載問題,并定位耗用較多 CPU 資源的進(jìn)程。

操作步驟

通過控制臺管理終端連接到 ECS 實例,參見使用遠(yuǎn)程連接功能連接 ECS 實例。

說明:資源負(fù)載異常時,通常無法通過 SSH 進(jìn)行遠(yuǎn)程連接,建議您通過控制臺管理終端進(jìn)行連接。

通過 top 命令查看系統(tǒng)當(dāng)前的運行情況。

 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

針對負(fù)載問題,您只需關(guān)注回顯的第一行和第三行信息,詳細(xì)說明如下。

top 命令的第一行顯示的內(nèi)容 17:27:13 up 27 days, 3:13, 1 user, load average: 0.02, 0.03, 0.05 依次為 系統(tǒng)當(dāng)前時間 、系統(tǒng)到目前為止已運行的時間、當(dāng)前登錄系統(tǒng)的用戶數(shù)量、系統(tǒng)負(fù)載,這與直接執(zhí)行 uptime 命令查詢結(jié)果一致。

top 命令的第三行會顯示當(dāng)前 CPU 資源的總體使用情況,下方會顯示各個進(jìn)程的資源占用情況。

通過字母鍵 P,可以對 CPU 使用率進(jìn)行倒序排列,進(jìn)而定位系統(tǒng)中占用 CPU 較高的進(jìn)程。

說明:通過字母鍵 M, 您可以對系統(tǒng)內(nèi)存使用情況進(jìn)行排序。如果有多核 CPU,數(shù)字鍵 1 可以顯示每核 CPU 的負(fù)載狀況。

通過 ll /proc/PID/exe 可以查看每個進(jìn)程 ID 對應(yīng)的程序文件。

CPU 跑滿或跑高的分析處理

CPU 的跑滿或跑高,在確認(rèn)具體的進(jìn)程結(jié)果后,針對異常的進(jìn)程,您需要通過 top 命令將其終止;而對于 kswapd0 進(jìn)程導(dǎo)致的內(nèi)存不足等問題,您需要對系統(tǒng)進(jìn)行規(guī)格的升級或程序的優(yōu)化。

使用 top 直接終止 CPU 消耗較大的進(jìn)程

您可以直接在 top 運行界面快速終止相應(yīng)的異常進(jìn)程。操作步驟如下:

若您想要終止某個進(jìn)程,只需按下小寫的 k 鍵。

輸入想要終止的進(jìn)程 PID (top 輸出結(jié)果的第一列)。例如,若您想要終止 PID 為 86 的進(jìn)程,輸入 86 后按回車即可。

操作成功后,界面會出現(xiàn)類似 Send pid 86 signal [15/sigterm] 的提示信息。按回車確認(rèn)即可。

kswapd0 進(jìn)程占用導(dǎo)致 CPU 較高

操作系統(tǒng)都用分頁機(jī)制來管理物理內(nèi)存,系統(tǒng)會把一部分硬盤空間虛擬成內(nèi)存使用。由于內(nèi)存的速度要比磁盤快得多,所以系統(tǒng)要按照某種換頁機(jī)制將不需要的頁面換到磁盤中,將需要的頁面調(diào)到內(nèi)存中。

kswapd0 是虛擬內(nèi)存管理中負(fù)責(zé)換頁的進(jìn)程,當(dāng)服務(wù)器內(nèi)存不足的時候 kswapd0 會執(zhí)行換頁操作,這個換頁操作是十分消耗主機(jī) CPU 資源的。操作步驟如下:

通過 top 命令查看 kswapd0 進(jìn)程。

檢查該進(jìn)程是否持續(xù)處于非睡眠狀態(tài),且運行時間較長。若是,可以初步判定系統(tǒng)在持續(xù)地進(jìn)行換頁操作,kswapd0 進(jìn)程占用了系統(tǒng)大量 CPU 資源。

如何設(shè)置Linux實例帶寬和CPU跑滿或跑高排查

您可以通過 free 、ps 等指令進(jìn)一步查詢系統(tǒng)及系統(tǒng)內(nèi)進(jìn)程的內(nèi)存占用情況,做進(jìn)一步排查分析。

針對系統(tǒng)當(dāng)前內(nèi)存不足的問題,您可以重啟 Apache,釋放內(nèi)存。

說明:從長遠(yuǎn)的角度來看,您需要對內(nèi)存進(jìn)行升級。

帶寬跑滿或跑高的分析處理

對于正常進(jìn)程導(dǎo)致的帶寬跑滿或跑高的問題,需要對服務(wù)器的帶寬進(jìn)行升級。對于異常進(jìn)程,有可能是由于惡意程序問題,或者是部分 IP 惡意訪問導(dǎo)致,也可能是服務(wù)遭到了 CC 攻擊。

通常情況下,您可以使用 iftop 工具或 nethogs 查看流量的占用情況,進(jìn)而定位到具體的進(jìn)程。

使用 iftop 工具排查

在服務(wù)器內(nèi)部安裝 iftop 流量監(jiān)控工具。

 yum install iftop -y

服務(wù)器外網(wǎng)帶寬被占滿時,如果通過遠(yuǎn)程無法登陸,可通過阿里云終端管理進(jìn)入到服務(wù)器內(nèi)部,運行下面命令查看流量占用情況:

 iftop -i eth2 -P

注意:-P 參數(shù)將會顯示請求端口。執(zhí)行 iftop -i eth0 -P 命令,可以查看通過服務(wù)器哪個端口建立的連接,以及內(nèi)網(wǎng)流量。舉例如下:

在上圖中,您可以查看到流量高耗的是服務(wù)器上 53139 端口和 115.205.150.235 地址建立的連接。

執(zhí)行 netstat 命令反查 53139 端口對應(yīng)的進(jìn)程。

 netstat -tunlp |grep 53139

經(jīng)反查,服務(wù)器上 vsftpd 服務(wù)產(chǎn)生大量流量,您可以通過停止服務(wù)或使用 iptables 服務(wù)來對指定地址進(jìn)行處理,如屏蔽 IP 地址或限速,以保證服務(wù)器帶寬能夠正常使用。

使用 nethogs 進(jìn)行排查

在服務(wù)器內(nèi)部安裝 nethogs 流量監(jiān)控工具。

 yum install nethogs -y

通過 nethogs 工具來查看網(wǎng)卡上進(jìn)程級的流量信息,若未安裝可以通過 yum、apt-get 等方式安裝。舉例如下:

若 eth2 網(wǎng)卡跑滿,執(zhí)行命令 nethogs eth2。

查看每個進(jìn)程的網(wǎng)絡(luò)帶寬情況以及進(jìn)程對應(yīng)的 PID。

確定導(dǎo)致帶寬跑滿或跑高的具體進(jìn)程。

若進(jìn)程確定是惡意程序,可以通過執(zhí)行 kill -TERM <PID> 來終止程序。

說明: 如果是 Web 服務(wù)程序,您可以使用 iftop 等工具來查詢具體 IP 來源,然后分析 Web 訪問日志是否為正常流量。日志分析可以使用 logwatch 或 awstats 等工具進(jìn)行。

使用 Web 應(yīng)用防火墻防御 CC 攻擊

若您的服務(wù)遭受了 CC 攻擊,請在 Web 應(yīng)用防火墻控制臺盡快開啟 CC 安全防護(hù)。

登錄 Web應(yīng)用防火墻 控制臺。

在 CC 安全防護(hù)中,啟動狀態(tài)按鈕,并在模式中選擇 正常。

如何設(shè)置Linux實例帶寬和CPU跑滿或跑高排查

感謝各位的閱讀!關(guān)于如何設(shè)置Linux實例帶寬和CPU跑滿或跑高排查就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI