×

幫助中心

常見問題
域名類
?  域名介紹
?  注冊(cè)/續(xù)費(fèi)
?  域名管理
?  域名過戶
?  域名轉(zhuǎn)移
?  增值服務(wù)
?  域名交易
?  通用網(wǎng)址
?  產(chǎn)品更新日志
郵局類
?  產(chǎn)品簡(jiǎn)介
?  產(chǎn)品管理
?  郵件客戶端
?  郵箱用戶操作指南
?  郵箱管理員操作指南
?  產(chǎn)品使用手冊(cè)
?  代理商控制臺(tái)操作指南
?  產(chǎn)品更新日志
云虛機(jī)類
?  購(gòu)買與升級(jí)
?  FTP
?  主機(jī)管理
?  技術(shù)問題
?  數(shù)據(jù)庫(kù)
?  產(chǎn)品更新日志
ECS云主機(jī)類
?  產(chǎn)品更新日志
會(huì)員類
?  會(huì)員注冊(cè)
?  信息修改
?  忘記密碼
?  賬戶實(shí)名認(rèn)證
?  產(chǎn)品更新日志
財(cái)務(wù)類
?  后付費(fèi)計(jì)費(fèi)
?  在線支付
?  線下匯款
?  發(fā)票問題
?  匯款單招領(lǐng)
?  退款問題
?  充值業(yè)務(wù)
?  產(chǎn)品更新日志
ICP備案
?  備案問題快速咨詢通道
?  備案介紹
?  備案賬號(hào)
?  ICP備案前準(zhǔn)備內(nèi)容
?  ICP備案流程
?  ICP備案操作指導(dǎo)
?  ICP備案信息查看
?  備案合規(guī)核查要求
?  資料下載
?  公安聯(lián)網(wǎng)備案與經(jīng)營(yíng)性備案
?  各地管局備案通知
?  常見問題
服務(wù)類
?  ICP備案
?  小新服務(wù)
?  產(chǎn)品更新日志
網(wǎng)站定制類
?  網(wǎng)站定制問題
?  網(wǎng)站訪問問題
新辦公類
?  常見問題
?  操作手冊(cè)下載
云推送
?  云推送常見問題
速成建站
?  網(wǎng)站訪問問題
?  網(wǎng)站使用問題
?  產(chǎn)品更新日志
SSL證書
?  SSL證書常見問題
?  產(chǎn)品更新日志
新網(wǎng)云產(chǎn)品類
?  新網(wǎng)云WEB應(yīng)用防火墻
?  新網(wǎng)云DDoS防護(hù)
?  云數(shù)據(jù)庫(kù)
?  云產(chǎn)品運(yùn)維
?  內(nèi)容分發(fā)網(wǎng)絡(luò)CDN
?  對(duì)象存儲(chǔ) S3
?  網(wǎng)絡(luò)
資料下載
新手上路

Linux服務(wù)器帶寬和CPU跑滿或跑高排查

  • 作者:新網(wǎng)
  • 文章來(lái)源:新網(wǎng)
  • 點(diǎn)擊數(shù):100
  • 更新時(shí)間:2017-07-26 13:37:31

   Linux服務(wù)器帶寬和CPU跑滿或跑高排查

 

  CPU 負(fù)載查看方法

 

  使用 vmstat 查看系統(tǒng)緯度的 CPU 負(fù)載

 

  使用 top 查看進(jìn)程緯度的 CPU 負(fù)載

 

  使用 vmstat 查看系統(tǒng)緯度的 CPU 負(fù)載

 

  可以通過 vmstat 從系統(tǒng)維度查看 CPU 資源的使用情況。

 

  用法說明:

 

  格式:vmstat -n 1# -n 1 表示結(jié)果一秒刷新一次。示例輸出:$ vmstat -n 1procs —————-memory————— —-swap— ——-io—— -system— ———cpu——- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 70352 169448 448452 0 0 0 4 10 11 0 0 99 0 0 0 0 0 70376 169448 448484 0 0 0 0 175 406 0 0 100 0 0 0 0 0 70376 169448 448484 0 0 0 0 173 414 0 1 99 0 0 0 0 0 70376 169448 448484 0 0 0 128 212 429 3 0 96 1 0^C

 

  回顯說明:

 

  返回結(jié)果中的主要數(shù)據(jù)列說明:

 

  r: 表示系統(tǒng)中 CPU 等待處理的線程。由于 CPU 每次只能處理一個(gè)線程,所以,該數(shù)值越大,通常表示系統(tǒng)運(yùn)行越慢。

  us:用戶模式消耗的 CPU 時(shí)間百分比。該值較高時(shí),說明用戶進(jìn)程消耗的 CPU 時(shí)間比較多,比如,如果該值長(zhǎng)期超過 50%,則需要對(duì)程序算法或代碼等進(jìn)行優(yōu)化。

  sy:內(nèi)核模式消耗的 CPU 時(shí)間百分比。

  wa:IO 等待消耗的 CPU 時(shí)間百分比。該值較高時(shí),說明 IO 等待比較嚴(yán)重,這可能磁盤大量作隨機(jī)訪問造成的,也可能是磁盤性能出現(xiàn)了瓶頸。

  id:處于空閑狀態(tài)的 CPU 時(shí)間百分比。如果該值持續(xù)為 0,同時(shí) sy 是 us 的兩倍,則通常說明系統(tǒng)則面臨著 CPU 資源的短缺。

 

  使用 top 查看進(jìn)程緯度的 CPU 負(fù)載

 

  可以通過 top 從進(jìn)程緯度來(lái)查看其 CPU、內(nèi)存等資源的使用情況。

 

  用法說明:

 

  格式:top示例輸出:top - 17:27:13 up 27 days, 3:13, 1 user, load average: 0.02, 0.03, 0.05Tasks: 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 stKiB Mem: 1016656 total, 946628 used, 70028 free, 169536 buffersKiB 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

 

  回顯說明:

 

  默認(rèn)界面上第三行會(huì)顯示當(dāng)前 CPU 資源的總體使用情況,下方會(huì)顯示各個(gè)進(jìn)程的資源占用情況。

 

  可以直接在界面輸入大小字母 P,來(lái)使監(jiān)控結(jié)果按 CPU 使用率倒序排列,進(jìn)而定位系統(tǒng)中占用 CPU 較高的進(jìn)程。最后,根據(jù)系統(tǒng)日志和程序自身相關(guān)日志,對(duì)相應(yīng)進(jìn)程做進(jìn)一步排查分析,以判斷其占用過高 CPU 的原因。

 

  操作案例

 

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

 

  如前面所述,可以通過 top 命令查看系統(tǒng)的負(fù)載問題,并定位耗用較多 CPU 資源的進(jìn)程。

 

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

 

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

 

  輸入想要終止的進(jìn)程 PID (top 輸出結(jié)果的第一列)。比如,如下圖所示,假如想要終止 PID 為 23 的進(jìn)程,輸入 23 后按回車。

1.jpg

 

  如下圖所示,操作成功后,界面會(huì)出現(xiàn)類似 “Send pid 23 signal [15/sigterm]” 的提示信息讓用戶進(jìn)行確認(rèn)。按回車確認(rèn)即可。

2.jpg

 

  CPU 使用率較低但負(fù)載較高

 

  問題描述:

 

  Linux 系統(tǒng)沒有業(yè)務(wù)程序運(yùn)行,通過 top 觀察,類似如下圖所示,CPU 很空閑,但是 load average 卻非常高:

3.jpg

 

  處理辦法:

 

  load average 是對(duì) CPU 負(fù)載的評(píng)估,其值越高,說明其任務(wù)隊(duì)列越長(zhǎng),處于等待執(zhí)行的任務(wù)越多。

 

  出現(xiàn)此種情況時(shí),可能是由于僵死進(jìn)程導(dǎo)致的??梢酝ㄟ^指令 ps -axjf 查看是否存在 D 狀態(tài)進(jìn)程。

 

  D 狀態(tài)是指不可中斷的睡眠狀態(tài)。該狀態(tài)的進(jìn)程無(wú)法被 kill,也無(wú)法自行退出。只能通過恢復(fù)其依賴的資源或者重啟系統(tǒng)來(lái)解決。

4.jpg

 

  kswapd0 進(jìn)程占用 CPU 較高

 

  操作系統(tǒng)都用分頁(yè)機(jī)制來(lái)管理物理內(nèi)存,操作系統(tǒng)將磁盤的一部分劃出來(lái)作為虛擬內(nèi)存,由于內(nèi)存的速度要比磁盤快得多,所以操作系統(tǒng)要按照某種換頁(yè)機(jī)制將不需要的頁(yè)面換到磁盤中,將需要的頁(yè)面調(diào)到內(nèi)存中,由于內(nèi)存持續(xù)不足,這個(gè)換頁(yè)動(dòng)作持續(xù)進(jìn)行,kswapd0是虛擬內(nèi)存管理中負(fù)責(zé)換頁(yè)的,當(dāng)服務(wù)器內(nèi)存不足的時(shí)候kswapd0會(huì)執(zhí)行換頁(yè)操作,這個(gè)換頁(yè)操作是十分消耗主機(jī)CPU資源的。如果通過top發(fā)現(xiàn)該進(jìn)程持續(xù)處于非睡眠狀態(tài),且運(yùn)行時(shí)間較長(zhǎng),可以初步判定系統(tǒng)在持續(xù)的進(jìn)行換頁(yè)操作,可以將問題轉(zhuǎn)向內(nèi)存不足的原因來(lái)排查。

 

  問題描述:

 

  kswapd0 進(jìn)程占用了系統(tǒng)大量 CPU 資源。

 

  處理辦法:

 

  Linux 系統(tǒng)通過分頁(yè)機(jī)制管理內(nèi)存的同時(shí),將磁盤的一部分劃出來(lái)作為虛擬內(nèi)存。而 kswapd0 是 Linux 系統(tǒng)虛擬內(nèi)存管理中負(fù)責(zé)換頁(yè)的進(jìn)程。當(dāng)系統(tǒng)內(nèi)存不足時(shí),kswapd0 會(huì)頻繁的進(jìn)行換頁(yè)操作。而由于換頁(yè)操作非常消耗 CPU 資源,所以會(huì)導(dǎo)致該進(jìn)程持續(xù)占用較高 CPU 資源。

 

  如果通過 top 等監(jiān)控發(fā)現(xiàn) kswapd0 進(jìn)程持續(xù)處于非睡眠狀態(tài),且運(yùn)行時(shí)間較長(zhǎng)并持續(xù)占用較高 CPU 資源,則通常是由于系統(tǒng)在持續(xù)的進(jìn)行換頁(yè)操作所致。則可以通過 free 、ps 等指令進(jìn)一步查詢系統(tǒng)及系統(tǒng)內(nèi)進(jìn)程的內(nèi)存占用情況,做進(jìn)一步排查分析。

 

主機(jī)管理

免費(fèi)咨詢獲取折扣

Loading