Linux診斷

1、CPU核數
    1)top按1
    2)cat /proc/cpuinfo

    
    3) 物理CPU:cat /proc/cpuinfo |grep "physical id" |sort|uniq|wc -l

    
    4)core id:cat /proc/cpuinfo |grep "core id" |sort|uniq|wc -l 

    
    5)總核數 = 物理CPU個數 X 每顆物理CPU的核數
    6)總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數(cat /proc/cpuinfo| grep "processor"| wc -l)

    

2、CPU佔用率
    看CPU是否有問題,看CPU總的佔用率
    

3、平均負載
    含義:過去的1,5,15分鐘的平均負載
    平均負載:平均的活躍進程數(運行(R),可運行(S),不可中斷(D)),特點:歷史、平均、趨勢

    引申:進程狀態

    
    
    忙的趨勢是可接受還是不可接受?
        Load<0.7核數   負載不高,不忙
        0.7核數<Load<3*核數    不清楚,需要繼續分析
        Load>3*核數  負載高,忙


    Cpu佔用率和平均負載的關係
        1)平均負載load average高,就一定cpu佔用率高嗎?
            平均負載高,意味着進程多。
            A.如果這些進程每個進程佔用cpu也高的話(代碼複雜度高,有大量循環)(cpu密集進程,視頻編碼,人工智能,圖片處理),就肯定服務器系統cpu佔比高
            B.如果這些進程每個進程佔用cpu很低的話(IO密集型進程,讀寫數據,佔用cpu很低),就肯定服務器系統cpu佔比不高
        2)cpu佔用高,就一定平均負載load average高嗎?
            A.    不一定:如果cpu佔用高,但是隻有少量進程,多核cpu,
            B.    有可能:如果cpu佔用高,同時有很多進程運行,就會load average高

        3)平均負載高有哪些原因造成?
            進程多造成,應用程序,cpu密集型,任務多,要大量統計,計算,如何進一步分析?看vmstat 的R列,如果R多,就 用top進一步分析進程,進一步dump線程,如果B列多,就分析IO


4、top
    1)Id-低,意味着cpu有瓶頸
    2)Us-高,繼續用top監控進程(找出cpu佔比高的進程),dump線程
    3)Sy-高,看內核可以優化的內核參數(一般較少出現問題 )
那麼對於內核態造成的佔用高和用戶態造成的佔用高,要考慮下一步怎麼分析,什麼導致的高,往哪個方向考慮
    4)Wa-高,進一步分析IO
    5)Si-高,進一步分析網絡

5、vmstat
    對操作系統整體的虛擬內存、進程、CPU活動進行監控
    vmstat 1 5:每1秒採集一次服務器狀態,採集5次

    

 

 

 


 

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