CPU使用過低,load過高-2

1: 一個個pod剔除,直到機器load爲0(空機器)

關注“上下文切換” 指標

記錄移除了哪些pod 產生了哪些變化

驗證free少的機器,load高?

 

結論:

a:進程數越多,即使CPU空閒率比較高,但是load還是有可能比較高,因爲進程切換佔用CPU時間

b:io wait 也會造成load虛高,需要排查 iostat -xz 1 看%util是否過高

 

分析結果:

a:機器沒有流量,pod比較多(20+searcher pod),負載在2左右,比較高

機器沒有流量,無pod,負載在0.6左右,比較低

期待的結果是,機器沒有流量,負載都應該比較低!!!!

b: 當pod被依次遷移走,發生變化的變量有:

進程數

上下文切換

內存

c:

刪除adapter的時候,內存釋放了20G,但是負載沒有發送變化,說明負載和內存並沒有直接的關聯

通過不斷減少任務數目,負載未發送變化,任務數目也和負載並沒有明顯的關聯

searcher的即使沒有流量,只要pod越多,負載就會越高,merger也是!

 

最終結論:

進程上下文切換越多,負載越高,目前看進程上下文切換與pod的數目是有關係的,並且與CPU的使用也有很大關係! 基於以上分析,加之對比主站機器,雲搜的機器的負載普遍虛高的原因是,機器上下文切換數目始終維持在比較高的狀態(無pod切換在8w+),在此中狀態下會導致CPU的使用率與load的關係表現爲:100%cpu,load爲1,並保持這種線性增長的關係!

 

todolist

1: tasks爲什麼這麼多?

2: 進程切換爲什麼這麼多?是哪些進程在切換?

 

 

階段1 : 機器上有20+ searcher pod

初始值

 

 

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