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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449025.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[flask]gunicorn配置文件

配置文件 #!/home/xx/.virtualenvs/xx/bin/python # encoding: utf-8import multiprocessing# 監聽端口 bind 0.0.0.0:5000 # 工作模式 worker_class gevent # 并行工作進程數 workers multiprocessing.cpu_count() * 1 # 設置守護進程 daemon True# 設置日志記錄水平 logl…

Linux 上 docker 安裝 oracle-xe-11g

環境: 2G 內存,60G 硬盤阿里云一臺(帶寬 1M), 配置如下圖: 軟件:docker Docker version 1.6.2, build 7c8fca2 相關 link docker 鏡像站:https://store.docker.com 視頻教程:ht…

最易忽視的腎虛4件事

腎是人的“先天之本”,如果把人體比喻成一棵大樹,腎就是樹根,吸收、傳遞營養充足,大樹才能枝繁葉茂。腎虛了,可能引起各種健康問題。 然而,在現實中,人們常常會夸大腎虛,很多人把出…

【計算機網絡】wireshark數據流追蹤、圖像抓取(轉)

不廢話了直接上地址 https://www.cnblogs.com/grj001/p/12223954.html

stm32學習方法

很多新手都問過嵌入式系統學習方法,好的學習方法可以事半功倍,學習嵌入式系統,掌握了好的學習方法,自然可以水到渠成。創客學院的老師就通過本篇文章就來說說嵌入式系統學習方法,新手必看 第一,學習基本的裸…

知識點漏缺總結

模塊化 使用模塊化可以給我們帶來以下好處 解決命名沖突 提供復用性 提高代碼可維護性 Proxy Proxy 來替換原本的 Object.defineProperty 來實現數據響應式。 Proxy 是 ES6 中新增的功能,它可以用來自定義對象中的操作。 let p new Proxy(target, handler) 復制代碼…

成功投資的九大要訣

真正的有錢人對金錢持非常嚴肅的態度,即便是拿來投機也要小心睿智,物盡其用。這里的投機并不是指非理性的賭博,而是指為了追求更高收益而采取的市場投資行為。卡西研究所資深分析師Louis James總結了富豪們投機成功的9個秘訣。 秘訣1&#…

《 Docker 技術入門與實戰 》讀書筆記 ( CentOS 安裝 Docker )

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 PS :個人所有讀書筆記只記錄個人想要的內容,很可能原書大量內容沒有納入筆記中... ... 以下全文內容出自書目&…

數據結構:靜態鏈表實現樹的同構

寫在最前面 按照課程講解的思路來寫,邏輯關系能夠理解清楚了,但是實際運行起來實在是有問題,雖然在PTA上能夠通過。但是我自己看不出問題來,并且,看了一遍又一遍仍然看不出來!(可能自己太笨。。…

中國人為什么學不會英語

英語永遠也學不會! 這種抱怨和哀嘆,大概在中國早已經司空見慣了。于是,有人開始計算學英語是多么大的浪費。 作為過來人,我對此深有體會。記得我當年也有過類似的絕望感。 但是,一位前輩安慰我說:你可以說你永遠掌…

研究人員發現:基于文本的AI模型容易受到改述攻擊

由于自然語言處理(NLP)的進步,越來越多的公司和組織開始利用AI算法來執行與文本相關的任務,例如:過濾垃圾郵件、分析社交媒體帖子和評論、評估簡歷以及檢測假新聞。 但是,真的可以相信這些算法能夠可靠地執…

解決 linux 下安裝 node 報: command not found

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 注意:有時安裝成功后,需要關閉xshell,重新啟動。nvm才會生效。 1. 在 linux 下安裝 node 提示 -bash: node: com…

阿里云官方網站免費套餐怎么搶

阿里云推出包含云服務器 ECS、負載均衡、云數據庫 RDS、云數據庫 Redis 版、云數據庫 Mongodb 版、彈性公網 IP、CDN、對象存儲 OSS、文件存儲 NAS等40核心云產品,6個月免費使用何為免費套餐,其實就是讓你先體驗,覺得好用,易用&am…

1003 我要通過

1003 我要通過! (20 分)“答案正確”是自動判題系統給出的最令人歡喜的回復。本題屬于 PAT 的“答案正確”大派送 —— 只要讀入的字符串滿足下列條件,系統就輸出“答案正確”,否則輸出“答案錯誤”。 得到“答案正確”的條件是: …

在英特爾? 凌動? 處理器上將 OpenGL* 游戲移植到 Android* (第一部分)

將游戲和其他使用大量 3D 圖形的應用從 OpenGL 標準移植到 Google Android 設備(包括構建在英特爾 凌動? 微架構上的設備)存在巨大的機遇,因為基于 OpenGL 的游戲、游戲引擎和其他傳統軟件易于獲得;OpenGL 便于移植;而…

文件系統:使用 yum 安裝軟件包

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 一、yum命令的基本安裝功能 [rootlocalhost ~]# man yum command is one of: * install package1 [package2] [...]: ins…

elasticsearch全局analyzer聲明

2019獨角獸企業重金招聘Python工程師標準>>> 問題 elasticsearch從2.4升級到5.6,elasticsearch.yml配置中有一些analyzer配置拷貝到新版本,啟動報錯 index :analysis :analyzer :lowercase_whitespace :type : customtokenizer : myTokenizer…

Parallels Desktop虛擬機無法關機提示“虛擬機處理器已被操作系統重置”

如果你在使用PD的時候遇到了這樣子的彈窗,恭喜你篇博文可以幫助你,因為我剛剛也遇到了這個問題。如果有幫助可以點一下推薦按鈕。 針對Windows電腦 啟動虛擬機創建快照使用管理員權限運行命令提示符執行powercfg -h off重啟試試成功了再刪除快照即可修改…

linux下安裝 ping 命令

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 使用docker倉庫下載的ubuntu 14.04 鏡像。里面精簡的連 ping 命令都沒有。google 百度都搜索不到ping 命令在哪個包里。 努力找了半天&…

揚尼斯定律:程序員的開發效率每6年提高一倍

我不斷的聽到各種關于“軟件危機”的警言,以及關于軟件開發缺少過程規范的批評。我做編程工作超過15年,我認為這些言論基本上都是錯的:我確信我能在很短的時間里用如今的開發工具復制出15年前一個不錯的程序員開發出的東西。 模仿摩爾定律和…