日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux操作系统load average过高,kworker占用较多cpu

發布時間:2023/12/18 linux 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux操作系统load average过高,kworker占用较多cpu 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux操作系統load average過高,kworker占用較多cpu

今天巡檢發現,mc1的K8S服務器集群有些異常,負載不太均衡。其中10.2.75.32-34,49的load average值都在40以上,雖然機器的cpu核數都是40或48核不算嚴重,但也值得重視。

?

登陸機器查看,執行top發現,cpu的使用率接近40%,sys有20-30,user有10-20。也發現有大量的內核線程[kworker]占用比較多的使用率。如下是在下午7點多的截圖,如果是高峰期9點,kworker的數字多數是在20-30之間,說明占用了比較多的cpu資源。

順著這個方向排查。[kworker]這種內核線程使用的是內核工作隊列模式,1個cpu就產生對應的1個內核線程。參考了這個文章:https://yq.aliyun.com/articles/504369

里面有說到kworker的排查方面,即用ftrace命令,排查workqueue_queue_work中什么函數調用最多。

在機器上安裝ftrace,參考文章:https://linux.cn/article-9273-1.html

apt-get install trace-cmd

裝上后運行一段時間查看

trace-cmd record -e workqueue:workqueue_queue_work

trace-cmd report > result

把結果保存到result后,進行分析結果得出:

這個dbs_timer的function運行數量極大。關鍵字搜索一下,感覺有點是這個引起的問題,因為這個函數是跟cpu動態調整頻率有關系,而cpu調頻是用來省電用的

具體通過學習了cpufreq的知識:

https://www.ibm.com/developerworks/cn/linux/l-cn-cpufreq/index.html

http://abcdxyzk.github.io/blog/2015/08/12/kernel-cpufreq/

里面提到一點:

Cpufreq 作為一個子系統最早被加入到 Linux 內核中時只配備了 governors ,分別是performance、powersave 和 userspace,ondemand。當用戶選擇使用 performance governor 時,CPU會固定工作在其支持的最高運行頻率上;當用戶選擇使用 powersave governor 時,CPU會固定工作在其支持的最低運行頻率上。因此這兩種 governors 都屬于靜態 governor ,即在使用它們時CPU?的運行頻率不會根據系統運行時負載的變化動態作出調整。這兩種governors 對應的是兩種極端的應用場景,使用 performance governor 體現的是對系統高性能的最大追求,而使用 powersave governor 則是對系統低功耗的最大追求。

安裝下面的軟件查看配置:

apt-get install cpufrequtils

但是我們的cpu配置是這樣的:

初步懷疑:cpu的動態調頻策略,導致每隔一段時間就要執行od_dbs_timers函數(調用dbs_timers的調用者),來判斷cpu是否要進行降頻或者升頻,因為我們的進程數量特別多,所以也可能會加快這個策略的運行頻率。最后就導致kworker占用比較高的資源。

?

為了確認是否這個引起的,下午7點多的時候在3臺機器上進行了驗證,把cpufreq的策略改為performance,這個策略上面說過cpu將不會進行調頻,這3臺機器都是kworker還處于比較高使用率情況的

for i in $(ls /sys/devices/system/cpu/*/cpufreq/scaling_governor);do echo performance > $i;done

查看實際的模式是否修改完成

等待片刻后,load average 下降很多, kworker也從top命令的首頁中消失,cpu的sys和user使用率也降低,說明這個改動是有效的。

在類似K8S這種負載比較高,進程數量多的服務器上,應該要關閉這個調頻功能,雖然不省電,但至少可以避免在負載出現一定程度的情況下內核線程反而會加大cpu資源消耗的情況。

?

轉載于:https://www.cnblogs.com/williamjie/p/10836799.html

總結

以上是生活随笔為你收集整理的Linux操作系统load average过高,kworker占用较多cpu的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。