我們都知道一臺(tái)服務(wù)器優(yōu)良的特性能夠給用戶很好的體驗(yàn)。但服務(wù)器并不是萬(wàn)能的,雖然服務(wù)器出現(xiàn)卡頓的現(xiàn)象比較少見(jiàn),但也不排除出現(xiàn)的可能,而服務(wù)器一旦出現(xiàn)卡頓,造成的后果會(huì)嚴(yán)重的多。這里霍霍分享幾個(gè)處理技巧,希望能有所幫助。
服務(wù)器卡頓的情況下,請(qǐng)先檢查服務(wù)器的使用情況。
1、CPU使用率是否大于50%。
2、內(nèi)存使用率是否過(guò)高。
3、網(wǎng)絡(luò)使用率是否過(guò)高。
如果出現(xiàn)上述情況,請(qǐng)聯(lián)系技術(shù)人員處理。如果沒(méi)有出現(xiàn)上述情況則可能由以下原因造成:
1、服務(wù)器遭遇CC攻擊導(dǎo)致,需要聯(lián)系售后人員做CC防護(hù)策略。
2、服務(wù)器遭遇較大的流量攻擊,但服務(wù)器沒(méi)有被流量牽引。
3、設(shè)備網(wǎng)卡故障、網(wǎng)線故障、上層交換機(jī)故障。在出現(xiàn)故障前,您可以對(duì)您服務(wù)器的相鄰ip進(jìn)行測(cè)試,如果相鄰ip 也同樣出現(xiàn)丟包情況,說(shuō)明是上層交換設(shè)備故障。
4、機(jī)房網(wǎng)絡(luò)故障,這將是大范圍的故障。
服務(wù)器卡的情況下,一般會(huì)出現(xiàn)的表現(xiàn)狀況:
1、服務(wù)器嚴(yán)重丟包,正常的服務(wù)器丟包率為0%,若丟包率高于1%則會(huì)出現(xiàn)卡的情況。
2、部分用戶卡,部分用戶不卡,可能由于硬件防火墻造成,部分鏈路堵塞。
3、另外,上述情況也可能是互聯(lián)網(wǎng)節(jié)點(diǎn)故障造成。
排查服務(wù)器的卡頓有利于保證業(yè)務(wù)穩(wěn)定性和持續(xù)性。Linux中可以通過(guò)一些監(jiān)控命令來(lái)實(shí)現(xiàn)。
在Linux服務(wù)器運(yùn)維中,實(shí)時(shí)掌握系統(tǒng)資源的使用情況是保障服務(wù)穩(wěn)定性的基石。無(wú)論是CPU過(guò)載、內(nèi)存泄漏、磁盤I/O瓶頸,還是網(wǎng)絡(luò)流量異常,都需要依賴一系列高效的命令行工具進(jìn)行精準(zhǔn)監(jiān)控與分析。本文將系統(tǒng)梳理Linux生態(tài)中用于服務(wù)器指標(biāo)監(jiān)控的核心命令,涵蓋資源查看、性能診斷、趨勢(shì)預(yù)測(cè)及自動(dòng)化監(jiān)控場(chǎng)景,并結(jié)合實(shí)際案例演示如何快速定位問(wèn)題與優(yōu)化系統(tǒng)性能。
基礎(chǔ)監(jiān)控:快速獲取系統(tǒng)狀態(tài)
1. top與htop——全局資源總覽
作為最經(jīng)典的實(shí)時(shí)監(jiān)控工具,top命令以動(dòng)態(tài)刷新的方式展示系統(tǒng)的整體負(fù)載情況,包括:
CPU使用率:用戶態(tài)(us)、系統(tǒng)態(tài)(sy)、空閑(id)、等待I/O(wa)等狀態(tài)占比。
內(nèi)存與Swap:物理內(nèi)存總量、已用、緩存(cache)、交換分區(qū)使用情況。
進(jìn)程列表:按CPU或內(nèi)存占用排序的進(jìn)程詳情(PID、用戶、資源消耗等)。
htop是top的增強(qiáng)版,支持彩色顯示、鼠標(biāo)操作、進(jìn)程樹(shù)視圖及直接殺死進(jìn)程的功能,交互性更強(qiáng)。例如,通過(guò)F6鍵可按磁盤I/O排序進(jìn)程,快速定位高負(fù)載服務(wù)。
2. vmstat——虛擬內(nèi)存與CPU統(tǒng)計(jì)
vmstat(Virtual Memory Statistics)以固定間隔輸出系統(tǒng)資源快照,適合觀察趨勢(shì)變化:
$ vmstat 2 5 每2秒采樣一次,共5次
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 5012344 102384 2103456 0 0 25 30 105 220 10 5 85 0 0
關(guān)鍵指標(biāo)解析:
procs.r:等待CPU的進(jìn)程數(shù),持續(xù)大于CPU核心數(shù)表示CPU資源緊張。
memory.swpd:交換分區(qū)使用量,持續(xù)增長(zhǎng)可能預(yù)示內(nèi)存不足。
io.bi/bo:塊設(shè)備每秒讀寫量(塊數(shù)),反映磁盤I/O壓力。
3. iostat——磁盤I/O與設(shè)備負(fù)載
iostat專注于存儲(chǔ)設(shè)備監(jiān)控,可展示每個(gè)磁盤的吞吐量、響應(yīng)時(shí)間及利用率:
$ iostat x 1 每秒顯示擴(kuò)展信息
Device r/s w/s rkB/s wkB/s await %util
sda 5.2 3.1 120.4 45.2 2.1 8.3
%util:設(shè)備帶寬使用率,接近100%表明磁盤成為瓶頸。
await:I/O操作平均等待時(shí)間(毫秒),過(guò)高可能因磁盤過(guò)載或硬件故障。
4. netstat與ss——網(wǎng)絡(luò)連接與流量監(jiān)控
netstat可查看當(dāng)前網(wǎng)絡(luò)連接、路由表及接口統(tǒng)計(jì)信息:
$ netstat tulnp 列出所有監(jiān)聽(tīng)端口及對(duì)應(yīng)進(jìn)程
$ netstat s 顯示網(wǎng)絡(luò)協(xié)議統(tǒng)計(jì)(如TCP重傳數(shù))
ss(Socket Statistics)作為netstat的替代品,速度更快且信息更詳細(xì):
$ ss s 匯總所有socket狀態(tài)
$ ss it '( dport = :80 )' 篩選目標(biāo)端口為80的TCP連接
5. free與df——內(nèi)存與磁盤空間檢查
free顯示內(nèi)存總量及使用情況,推薦使用h參數(shù)以易讀格式輸出:
$ free h
total used free shared buff/cache available
Mem: 7.7G 2.1G 3.2G 256M 2.4G 5.0G
Swap: 2.0G 0B 2.0G
df(Disk Free)展示文件系統(tǒng)磁盤空間使用情況,結(jié)合h和T參數(shù)可顯示文件系統(tǒng)類型:
$ df hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 50G 32G 16G 67% /
進(jìn)階工具:深度診斷與趨勢(shì)分析
1. dstat——多功能資源監(jiān)控器
dstat整合了vmstat、iostat、netstat等工具的功能,支持彩色輸出與CSV導(dǎo)出:
$ dstat cmsdn topcpu 監(jiān)控CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)及高CPU進(jìn)程
通過(guò)插件擴(kuò)展,可監(jiān)控MySQL查詢、ZFS文件系統(tǒng)等特定服務(wù)。
2. sar——?dú)v史數(shù)據(jù)回溯與報(bào)告生成
sar(System Activity Reporter)屬于sysstat工具包,可記錄并分析歷史性能數(shù)據(jù):
$ sar u 1 3 每秒采樣CPU使用率,共3次
$ sar r f /var/log/sa/sa15 查看15號(hào)的內(nèi)存歷史數(shù)據(jù)
需提前啟用sysstat服務(wù)(systemctl enable sysstat),數(shù)據(jù)默認(rèn)存儲(chǔ)在/var/log/sa/。
3. nmon——交互式性能儀表盤
nmon以分屏模式展示CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等核心指標(biāo),支持快捷鍵切換視圖:
$ nmon s2 c60 每2秒采樣一次,共60次,生成交互式界面
結(jié)果可導(dǎo)出為CSV文件,便于后續(xù)分析。
4. iftop與nload——實(shí)時(shí)網(wǎng)絡(luò)流量監(jiān)控
iftop按主機(jī)對(duì)顯示實(shí)時(shí)網(wǎng)絡(luò)帶寬使用情況:
$ iftop i eth0 監(jiān)控eth0接口流量
nload則分通道展示進(jìn)出流量曲線,直觀識(shí)別流量峰值。
5. glances——跨平臺(tái)綜合監(jiān)控工具
glances通過(guò)Web界面或終端提供一站式監(jiān)控,支持API集成與告警功能:
$ glances webserver 啟動(dòng)Web服務(wù)(默認(rèn)端口61208)
場(chǎng)景化監(jiān)控策略與自動(dòng)化實(shí)踐
1. 實(shí)時(shí)告警與閾值觸發(fā)
結(jié)合watch命令定期執(zhí)行監(jiān)控指令,并利用grep或awk過(guò)濾異常值:
$ watch n 5 "df h | grep '/data' | awk '{print $5}' | tr d '%'" 每5秒檢查/data分區(qū)使用率
當(dāng)使用率超過(guò)90%時(shí),可通過(guò)郵件或Slack發(fā)送告警(需集成mail或curl命令)。
2. 性能瓶頸快速定位
CPU密集型場(chǎng)景:使用pidstat u 1定位高CPU進(jìn)程,結(jié)合perf top分析熱點(diǎn)函數(shù)。
內(nèi)存泄漏排查:通過(guò)smem s swap查看進(jìn)程Swap使用,或valgrind tool=memcheck檢測(cè)內(nèi)存錯(cuò)誤。
磁盤I/O延遲:iotop按進(jìn)程排序I/O消耗,iostat x 1觀察%util與await指標(biāo)。
3. 日志與監(jiān)控?cái)?shù)據(jù)持久化
使用cron定時(shí)任務(wù)收集關(guān)鍵指標(biāo)并存儲(chǔ):
每日凌晨收集CPU、內(nèi)存、磁盤數(shù)據(jù)
0 0 /usr/bin/sar u r d p 1 60 > /var/log/sa/daily_$(date +%F).log
4. 容器化環(huán)境監(jiān)控
對(duì)于Docker或Kubernetes環(huán)境:
Docker:docker stats實(shí)時(shí)查看容器資源消耗,cAdvisor提供可視化監(jiān)控。
Kubernetes:kubectl top pod/node獲取資源用量,集成Prometheus+Grafana構(gòu)建監(jiān)控面板。
總結(jié)與最佳實(shí)踐建議
Linux服務(wù)器監(jiān)控的核心在于“分層觀測(cè)”與“工具鏈組合”。日常運(yùn)維中,建議:
基礎(chǔ)巡檢:使用htop、dstat快速掌握全局狀態(tài)。
深度診斷:通過(guò)sar、nmon回溯歷史數(shù)據(jù),定位偶發(fā)性問(wèn)題。
自動(dòng)化:編寫Shell腳本或使用Ansible集成監(jiān)控任務(wù),減少人工干預(yù)。
可視化:將數(shù)據(jù)導(dǎo)入Elasticsearch或Grafana,生成趨勢(shì)圖表與告警儀表盤。
無(wú)論是單機(jī)部署還是大規(guī)模集群,合理運(yùn)用這些命令可將隱性的系統(tǒng)負(fù)載轉(zhuǎn)化為顯性的數(shù)據(jù)指標(biāo),為性能優(yōu)化與容量規(guī)劃提供堅(jiān)實(shí)依據(jù)。掌握這些工具,意味著在服務(wù)器管理的復(fù)雜戰(zhàn)場(chǎng)中,始終擁有“看得清、控得住”的核心能力。
審核編輯 黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
13文章
9685瀏覽量
87276
發(fā)布評(píng)論請(qǐng)先 登錄
DLP9500使用過(guò)程中,偶發(fā)的會(huì)出現(xiàn)DMD損壞,什么原因?
DLP3010EVM評(píng)估板使用過(guò)程中,將連接DMD的FPC排線損壞了怎么維修?
量水堰計(jì)在使用過(guò)程中常見(jiàn)問(wèn)題剖析

量水堰計(jì)在使用過(guò)程中會(huì)遇到哪些常見(jiàn)的故障?

評(píng)論