系統(tǒng)類故障排查
概述
本文主要介紹使用阿里云服務(wù)器ECS時的系統(tǒng)類故障排查,包含CPU、磁盤I/O、內(nèi)存、硬盤、帶寬資源占用異常的問題排查與定位。
詳細(xì)信息
阿里云提醒您:
如果您對實例或數(shù)據(jù)有修改、變更等風(fēng)險操作,務(wù)必注意實例的容災(zāi)、容錯能力,確保數(shù)據(jù)安全。
如果您對實例(包括但不限于ECS、RDS)等進(jìn)行配置與數(shù)據(jù)修改,建議提前創(chuàng)建快照或開啟RDS日志備份等功能。
如果您在阿里云平臺授權(quán)或者提交過登錄賬號、密碼等安全信息,建議您及時修改。
請根據(jù)現(xiàn)場實際情況,選擇以下對應(yīng)的解決方案。以下檢查步驟以CentOS 7.9為例。
CPU負(fù)載
連接登錄ECS,輸入以下命令:
sudo top
查看圖片紅框處的“l(fā)oad average”,此處三個數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的系統(tǒng)負(fù)載平均值。一般情況下如果這個數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5(具體數(shù)值需要根據(jù)實際服務(wù)器CPU處理能力以及系統(tǒng)使用情況而定)的時候就表明系統(tǒng)在超負(fù)荷運轉(zhuǎn)了。 結(jié)合“%CPU”占比較高的PID基本可定位是什么程序(COMMAND)在大量占用CPU。
邏輯CPU數(shù)量可以通過以下命令獲取:
sudo lscpu
其中,“CPU(s)”的數(shù)量即為邏輯CPU個數(shù)。
磁盤I/O
iostat是Linux中被用來監(jiān)控系統(tǒng)的I/O設(shè)備活動情況的工具,可通過以下命令查看磁盤I/O情況。
顯示所有設(shè)備的負(fù)載情況。
sudo iostat
以M為單位顯示所有信息,指定硬盤vda,間隔1秒,總共顯示5次。
sudo iostat -d -m vda 1 5
內(nèi)存
查看當(dāng)前服務(wù)器內(nèi)存使用情況,可使用以下命令:
sudo free -m
其中,“Mem”為服務(wù)器實際內(nèi)存,“Swap”為交換分區(qū)內(nèi)存。“total”指總計物理(swap)內(nèi)存的大小,“used”指已使用物理內(nèi)存(swap)的大小,“free”指可用的物理內(nèi)存(swap)大小,“shared”指多個進(jìn)程共享的內(nèi)存總額,“buff/cache”指磁盤的緩存大小,“available”指可以被新應(yīng)用程序使用的內(nèi)存大小。同時結(jié)合“top”命令中的“%MEM”占用信息基本可定位是什么程序(COMMAND)在大量占用內(nèi)存。
硬盤(磁盤)
查看當(dāng)前系統(tǒng)已掛載磁盤使用情況,可以使用以下命令:
sudo df -TH
查看當(dāng)前系統(tǒng)inode信息,可以使用以下命令:
sudo df -i
查看具體文件夾占用大小可使用以下命令:
sudo du -sh *
流量帶寬
iftop是Linux系統(tǒng)一個免費的網(wǎng)卡實時流量監(jiān)控工具,可以監(jiān)控包括指定網(wǎng)卡的實時流量、端口連接信息、反向解析 IP 等信息。
iftop并不是系統(tǒng)預(yù)裝的,如系統(tǒng)內(nèi)沒有iftop相關(guān)命令,可以使用以下命令安裝:
CentOS:
sudo yum install iftop
Ubuntu:
sudo apt install iftop
以下示例通過使用iftop命令,找出消耗流量最大的IP和端口。
指定本機eth0網(wǎng)卡。
sudo iftop -i eth0 -nNB -m 100M
按下L
顯示流量刻度。
按下T
顯示總量。
按下t
,發(fā)送和接收變成一行。
多次按B
,左上角會多次顯示"Bars show 2s/10s/40s average",通過多次刷新統(tǒng)計即可得到消耗最大的IP。
按下l
,輸入篩選出來消耗流量最大的IP,即上圖中的“*.*.*.116”,輸入后點擊回車
。
按下p
,即可查看到是哪個端口消耗的流量較大。
進(jìn)程
ps 命令用來列出系統(tǒng)中“當(dāng)前正在運行”的相關(guān)進(jìn)程,使用該命令可以確定有哪些進(jìn)程正在運行和對應(yīng)運行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等等。
輸入以下命令:
sudo ps aux