1. 程式人生 > 其它 >1、如何理解平均負載

1、如何理解平均負載

1、什麼是平均負載

  單位時間內,系統處於可執行狀態不可中斷狀態的平均程序數,不僅包含了正在使用的CPU,還包含了等待的I/O程序

  比如平均負載為2時,意味著什麼

    情況一:CPU只有2個時,CPU剛好全部被佔用

    情況二:CPU有4個時,CPU有50%的空閒

    情況三:CPU只有1個時,有一半的資源競爭不到CPU

  平均負載為多少時才合理

      1、使用top命令檢視CPU個數,或者從/proc/cpuinfo中讀取

      2、使用uptime或者top命令來檢視系統負載情況,下面用uptime來演示,最後三個數字依次代表過去1分鐘,5分鐘,15分鐘的平均負載

      

      3、進行分析

        情況一:如果過去1分鐘,5分鐘,15分鐘的平均負載相差不大,說明負載很文件

        情況二:如果過去1分鐘遠小於15分鐘,說明過去1分鐘負載在減小,過去15分鐘內有很大的負載

        情況三:如果過去1分鐘遠大於15分鐘,說明過去1分鐘負載在增加,也可能持續增加,所以需要觀察,如果近一分鐘的負載接近或者大於CPU                                                 個數,意味著發生過載,需要進行分析和想辦法優化

      4、假設我們在⼀個單+CPU+系統上看到平均負載為+1.73,0.60,7.98那麼說明在過去+1+分鐘內,系統有+73%+的超載,⽽在+15+分鐘內,有                                +698%+的超載,從整體趨勢來看,系統的負載在降低

      5、⼀般,當平均負載⾼於+CPU+數量+70%+的時候,你就應該分析排查負載⾼的問題了。一旦負載過高,響應就會變慢。70%也不是絕對的,最                              推薦的⽅法,還是把系統的平均負載監控起來,然後根據更多的歷史資料,判斷負載的變化趨勢,當發現負載有明顯升高趨勢時,比如翻倍                                  了,再進行分析和檢查

     

2、什麼是可執行狀態和不可中斷狀態

  正在使用CPU或者正在等待的程序稱作為可執行狀態,通過ps命令檢視整體的程序情況,STAT 為R的程序即為可執行狀態

  正處於核心態關鍵流程的程序稱作為不可中斷狀態,常見的硬體裝置的I/O響應、磁碟的讀寫資料時,這種是對程序和硬體裝置的保護機制,STAT 為D的程序即為不可中斷狀態

3、CPU使用率

  CPU密集型程序:使⽤⼤量+CPU+會導致平均負載升⾼,此時這兩者是⼀致的

        I/O密集型程序,等待+I/O+也會導致平均負載升⾼,但+CPU+使⽤率不一點很高

  ⼤量程序排程也會導致平均負載升⾼,此時的+CPU+使⽤率也會比較高

4、平均負載與CPU使用率案件分析

    命令:mpstat是⼀個常⽤的多核CPU效能分析⼯具,⽤來實時檢視每個CPU的效能指標,以及所有CPU的平均指標

       pidstat是⼀個常⽤的程序效能分析⼯具,⽤來實時檢視程序的CPU、記憶體、I/O+以及上下⽂切換等效能指標

    CPU密集型程序

        環境:CPU使用率100%

        

       正好有⼀個CPU的使⽤率為100%,但它的iowait只有+0。這說明,平均負載的升⾼正是由於+CPU+使⽤率為+100%

          

          從這⾥可以明顯看到,stress程序的CPU使⽤率為100%

     I/O密集型程序

      

         平均負載的升⾼是由於iowait的升⾼

        

          可以發現,還是stress程序導致的。使用pidstat -d 5 1檢視延遲多少秒

          

       大量程序場景

        

         由於系統只有2個CPU,明顯⽐8個程序要少得多,因⽽,系統的CPU處於嚴重過載狀態

       

         可以看出,8個程序在爭搶2個CPU,每個程序等待CPU的時間(也就是程式碼塊中的%wait列)⾼達75%。這些超出CPU計算能⼒的程序,導致                                       CPU嚴重過載

          

 摘自:https://wenku.baidu.com/view/7f38990a463610661ed9ad51f01dc281e53a566f.html