性能監控——cpu使用率過高,該怎麼分析?

一、前言

在博客 基於Docker搭建node-exporter+Prometheus+Grafana服務器監控平臺 已經搭建好服務器監控平臺。
在這裏插入圖片描述
Linux服務器監控,你必須要知道的“指標”和“命令”! 中歸納出服務器性能監控中需要重點關注的幾大模塊。而cpu作爲重點關注的模塊,需要注意下面這些和cpu相關的指標數據。
在這裏插入圖片描述
在實際的性能測試過程中,cpu的性能問題大部分都體現在us(user)、wa(iowait)、sy(system)、si(softirq)這幾個數據中。並且通過Grafana展示數據中,我們可以看到,關於cpu的數據也只是展示了total、user、system、iowait這幾個數據。下面就是通過常見的幾個數據的分析過程。

二、鏈路分析

    當我們在性能測試過程中,發現是操作系統層面的瓶頸時,首先需要看的就是CPU相關數據。通過topmpstat命令查看uswasysi的數據是否正常,當然也可以用前面說到的Grafana平臺,當然這個平臺最後的本質也是使用的相關命令。
    一般來說us>70%就高了,sy>30%就高了,wa>5%就高了,可以通過這個標準來看是那部分cpu使用率過高。關於si的數據,是最好爲0,雖然Grafana中沒有展示si的數據,但是可以通過total-us-sy-wa來判斷是不是其他部分cpu使用率過高。一般來說total-us-sy-wa的值接近於0。

2.1 us

us爲CPU運行(未調整優先級的)用戶進程時間佔比,典型的用戶進程有:Shells、數據庫、Web服務器…

    CPU使用率中us的使用率過高時的分析流程如下:
在這裏插入圖片描述

2.2 wa

wa(iowait)爲CPU用於等待IO完成的CPU時間佔比,一般IO操作特別頻繁時,這個值就會高。

    CPU使用率中wa的使用率過高時的分析流程如下:
在這裏插入圖片描述

2.3 sy

sy(system)爲CPU運行內核進程時間佔比,分配內存、IO操作、創建子進程都是內核操作.

    CPU使用率中sy的使用率過高時的分析流程如下:
在這裏插入圖片描述

2.4 si

si(softirq)爲CPU處理軟件中斷時間佔比。軟件中斷的含義爲:CPU 正在運行時,突然來了一個優先級高的,這時就會發一個中斷信號給 CPU。作爲一個幹活的,CPU就把手頭的工作現場保存一下,幹這個優先級高的活。除非這個中斷是致命的,不然 CPU 會在幹完這個活之後再回去幹之前的活,這就是一次軟件中斷。

    CPU使用率中si的使用率過高時的分析流程如下:
在這裏插入圖片描述

三、寫在最後

參考鏈接:cpu熱點分析
最後,CPU的數據分析可以總結爲下面這張圖。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章