精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文說清Linux System Load

開發 開發工具
雙十一壓測過程中,常見的問題之一就是load 飆高,通常這個時候業務上都有受影響,比如服務rt飆高,比如機器無法登錄,比如機器上執行命令hang住等等。

 [[440486]]

雙十一壓測過程中,常見的問題之一就是load 飆高,通常這個時候業務上都有受影響,比如服務rt飆高,比如機器無法登錄,比如機器上執行命令hang住等等。本文就來說說,什么是load,load是怎么計算的,什么情況下load 會飆高,load飆高是不是必然業務受影響。

一 什么是load

我們平時所講的load,其全稱是Linux system load averages ,即linux系統負載平均值。注意兩個關鍵詞:一個是“負載”,它衡量的是task(linux 內核中用于描述一個進程或者線程)對系統的需求(CPU、內存、IO等等),第二個關鍵詞是“平均”,它計算的是一段時間內的平均值,分別為 1、5 和 15 分鐘值。system load average由內核負載計算并記錄在/proc/loadavg 文件中, 用戶態的工具(比如uptime,top等等)讀的都是這個文件。

我們一般認為:

  • 1、如果load接近0,意味著系統處于空閑狀態;
  • 2、如果 1min 平均值高于 5min 或 15min 平均值,則負載正在增加;
  • 3、如果 1min 平均值低于 5min 或 15min 平均值,則負載正在減少;
  • 4、如果它們高于系統 CPU 的數量,那么系統很可能遇到了性能問題(視情況而定)。

二 如何計算load

1 核心算法

坦白了不裝了,核心算法其實就是指數加權移動平均法(Exponential Weighted Moving Average,EMWA),簡單表示就是:

a1 = a0 * factor + a * (1 - factor),其中a0是上一時刻的值,a1是當前時刻的值,factor是一個系數,取值范圍是[0,1],a是當前時刻的某個指標采樣值。

為什么要采用指數移動加權平均法?我個人理解

  • 指數移動加權平均法,是指各數值的加權系數隨時間呈指數式遞減,越靠近當前時刻的數值加權系數就越大,更能反映近期變化的趨勢;
  • 計算時不需要保存過去所有的數值,這對內核非常重要。

我們來看看,內核是怎么計算load average的,以下簡稱load。

上面的指數移動平均公式,a1 = a0 * e + a * (1 - e),具體到linux load的計算,a0是上一時刻的load,a1是當前時刻的load,e是一個常量系數,a 是當前時刻的active的進程/線程數量。

如上一節所述,linux 內核計算了三個load 值,分別是1分鐘/5分鐘/15分鐘 load 。計算這三個load 值時,使用了三個不同的常量系數e,定義如下:

  1. #define EXP_1 1884 /* 1/exp(5sec/1min) */ 
  2.  
  3. #define EXP_5 2014 /* 1/exp(5sec/5min) */ 
  4.  
  5. #define EXP_15 2037 /* 1/exp(5sec/15min) */ 

這三個系數是怎么來的呢?公式如下:

  • 1884 = 2048/(power(e,(5/(60*1)))) /* e = 2.71828 */
  • 2014 = 2048/(power(e,(5/(60*5))))
  • 2037 = 2048/(power(e,(5/(60*15))))

其中e=2.71828,其實就是自然常數e,也叫歐拉數(Euler number)。

那為什么是這么個公式呢?其中,5是指每五秒采樣一次,60是指每分鐘60秒,1、5、15則分別是1分鐘、5分鐘和15分鐘。至于為什么是2048和自然常數e,這里涉及到定點計算以及其他一些數學知識,不是我們研究的重點,暫時不展開討論。

我們看看內核中實際代碼:

  1. /* 
  2.  * a1 = a0 * e + a * (1 - e) 
  3.  */      
  4. static inline unsigned long 
  5. calc_load(unsigned long load, unsigned long exp, unsigned long active) 
  6. {        
  7.         unsigned long newload; 
  8.         // FIXED_1 = 2048 
  9.         newload = load * exp + active * (FIXED_1 - exp); 
  10.         if (active >= load
  11.                 newload += FIXED_1-1; 
  12.  
  13.         return newload / FIXED_1; 

就是一個很直觀的實現。上面代碼中,第一個參數就是上一時刻的load, 第二個參數就是常量系數,第三個參數是active的進程/線程數量(包括runnable 和 uninterruptible)。

2 計算流程

load的計算分為兩個步驟:

1)、周期性地更新每個CPU上的rq里的active tasks,包括runnable狀態和uninterruptible狀態的task,累加到一個全局變量calc_load_tasks。

2)、周期性地計算 load,load的計算主要就是基于上述calc_load_tasks 變量。

第一個步驟,每個cpu都必須更新calc_load_tasks,但是第二個步驟只由一個cpu來完成,這個cpu叫tick_do_timer_cpu,由它執行do_timer() -> calc_global_load()計算系統負載。

整體流程如下圖所示,在每個tick到來時(時鐘中斷),執行以下邏輯:

上圖中,棕色的calc_global_load_tick函數就是完成第一個步驟的,綠色的calc_global_load 是完成第二個步驟,藍色的calc_load 就是上一節中描述的核心算法。

這里需要說明的是,calc_global_load 把計算出來的load 值放在一個全局的變量avenrun中,它的定義是unsigned long avenrun[3],size 是3,用于存放1/5/15分鐘的load。 當查看/proc/loadavg的時候,就是從這個avenrun數組中獲取數據。

三 load高常見原因

從上述load的計算原理可以看出,導致load 飆高的原因,說簡單也簡單,無非就是runnable 或者 uninterruptible 的task 增多了。但是說復雜也復雜,因為導致task進入uninterruptible狀態的路徑非常多(粗略統計,可能有400-500條路徑)。個人覺得,有些地方有點濫用這個狀態了。

本人基于多年的linux 內核開發和疑難問題排查經驗,總結了一些經驗,以饗讀者。

1 周期性飆高

曾經有些業務方遇到過load周期性飆高的現象,如果不是因為業務上確實有周期性的峰值,那么大概率是踩中了內核計算load時的bug。這個bug和內核的load采樣頻率( LOAD_FREQ)有關,具體細節不展開討論。這個bug在ali2016,ali3000, ali4000中已經修復。

排除這個原因的話,可以接著查看是否磁盤IO的原因。

2 IO原因

磁盤性能瓶頸

iostat -dx 1 可以查看所有磁盤的IO 負載情況,當IOPS 或者 BW 高時,磁盤成為性能瓶頸,大量線程因為等待IO而處于uninterruptible 狀態,導致load飆高。此時如果用vmstat 查看,可能會觀察到 b 這一列的數值飆高, cpu iowait 飆高,/proc/stat文件中的procs_blocked 數值飆高。

云盤異常

云盤是虛擬盤,IO路徑長而復雜,比較容易出問題。常見的異常是IO UTIL 100%,avgqu-sz 始終不為0,至少有1 。大家不要誤解,io util 100%并不意味著磁盤很忙,而只意味著這個設備的請求隊列里在每次采樣時都發現有未完成的IO請求,所以當某種原因導致IO丟失的話,云盤就會出現UTIL 100%, 而ECS內核里的jbd2 線程,業務線程也會被D住,導致load 飆高。

JBD2 bug

JBD2是ext4 文件系統的日志系統,一旦jbd2 內核線程由于bug hang住,所有的磁盤IO請求都會被阻塞,大量線程進入uninterruptible狀態,導致load 飆高。

排除IO原因之后,接著可以查看內存情況。

3 內存原因

內存回收

task 在申請內存的時候,可能會觸發內存回收,如果觸發的是直接內存回收,那對性能的傷害很大。當前task 會被阻塞直到內存回收完成,新的請求可能會導致task數量增加(比如HSF線程池擴容),load 就會飆高。 可以通過tsar --cpu --mem --load -i1 -l 查看,一般會觀察到sys cpu 飆高,cache 突降等現象。

內存帶寬競爭

大家可能只聽說過IO帶寬,網絡帶寬,很少注意內存帶寬。其實內存除了在容量維度有瓶頸,在帶寬層面也有瓶頸,只是這個指標普通的工具觀察不了。我們開發的aprof 工具可以觀察內存帶寬競爭,在雙十一保障期間在混部環境大顯神威。

4 鎖

通常是內核某些路徑上的spin_lock會成為瓶頸,尤其是網絡的收發包路徑上。可以用perf top -g 查看到spin_lock的熱點, 然后根據函數地址找到內核的源碼。 伴隨的現象可能有sys 飆高,softirq 飆高。

另外,采用mutex_lock進行并發控制的路徑上,一旦有task 拿著lock 不釋放,其他的task 就會以TASK_UNINTERRUPTIBLE的狀態等待,也會引起load飆高。但是如果這把鎖不在關鍵路徑上,那么對業務可能就沒啥影響。

5 user CPU

有些情況下load飆高是業務的正常表現,此時一般表現為user cpu 飆高,vmstat 看到 r 這一列升高,tsar --load -i1 -l 看到runq 升高,查看proc/pid/schedstats 可能會看到第二個數字也就是sched delay 會增加很快。

四 根因分析大招

1 RUNNABLE 型load飆高分析

如上所述,這種情況,通常是由于業務量的增加導致的,屬于正常現象,但也有是業務代碼bug導致的,比如長循環甚至死循環。但無論哪一種,一般都可以通過熱點分析或者叫on cpu分析找到原因。on cpu分析的工具比較多,比如perf,比如阿里自研的ali-diagnose perf等等。

2 UNINTERRUPTIBLE型load飆高分析

所謂UNINTERRUPTIBLE,就是意味著在等,所以我們只要找到等在哪里,就基本找到原因了。

查找UNINTERRUPTIBLE狀態進程

UNINTERRUPTIBLE,通常也稱為D狀態,下文就用D狀態來描述。有一些簡單的工具可以統計當前D狀態進程的數量, 稍微復雜一點的工具可以把D狀態進程的調用鏈也就是stack輸出。這類工具一般都是從內核提供的proc 文件系統取數。

查看/proc/${pid}/stat 以及/proc/${pid}/task/${pid}/stat 文件,可以判斷哪些task 處于D狀態,如下所示:

第三個字段就是task的狀態。然后再查看/proc/${pid}/stack 文件就可以知道task 等在哪里。如:

但有時候,D狀態的task 不固定,這會導致抓不到D狀態或者抓到stack的不準確。這時候,就得上另一個終極大招,延遲分析。

延遲分析

延遲分析需要深入內核內部,在內核路徑上埋點取數。所以這類工具的本質是內核probe,包括systemtap,kprobe,ebpf等等。但是probe 技術必須結合知識和經驗才能打造成一個實用的工具。阿里自研的ali-diagnose可以進行各種delay分析,irq_delay, sys_delay, sched_delay, io_delay, load-monitor。

五 總結

linux 內核是一個復雜的并發系統,各模塊關系錯綜復雜。但是就load 而言,只要從runnable task和 uninterruptible task兩個維度進行分析,總能找到根源。

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-07-31 23:14:26

OpenCL框架語言

2020-05-11 07:57:33

區塊鏈分布式鏈上

2023-01-26 01:09:31

配置數據源參數

2025-07-09 03:10:00

倒排索引檢索

2021-09-15 06:55:34

異步LinqC#

2021-01-27 08:12:04

Dotnet函數數據

2025-02-19 10:49:24

2018-05-22 10:09:09

數據庫MySQL優化原理

2021-04-14 07:47:59

AttributeC#屬性

2019-11-12 15:11:45

秒殺流量高可用

2022-04-28 10:41:08

SaaS業務方式

2019-01-29 09:36:10

MySQLACID特性

2024-02-22 14:20:44

數字化轉型數字化

2021-05-12 18:22:36

Linux 內存管理

2021-10-25 16:01:01

Linux設備樹字符串

2020-09-03 06:35:44

Linux權限文件

2022-10-27 07:21:47

Linux性能頻率

2019-07-01 09:22:15

Linux操作系統硬件

2019-11-27 09:32:46

API 網關微服務

2025-04-22 08:57:27

點贊
收藏

51CTO技術棧公眾號

一区二区三区四区五区视频| 91精品国产乱| 久久亚洲综合网| 超碰在线观看91| 国产精品久久久久久久久久10秀| 欧美在线一二三四区| 欧美 日韩 国产 在线观看| 国产黄色片免费| 免费在线日韩av| 精品国产一区二区三区久久狼黑人| 成人高清在线观看视频| 日本免费一区二区六区| 国产精品福利一区二区三区| 国产高清一区视频| 中文字幕在线观看视频免费| 伊人成综合网| 亚洲欧洲日产国码av系列天堂| 性生生活大片免费看视频| 1区2区3区在线| 国产免费成人在线视频| 国产精品对白一区二区三区| 欧美视频xxxx| 亚洲美洲欧洲综合国产一区| 色老头一区二区三区| 国产精品无码专区| 在线视频成人| 91久久国产综合久久| www.国产在线播放| 午夜激情视频在线| 久久免费美女视频| 99re在线国产| 91片黄在线观看喷潮| 久久久久.com| 国语自产精品视频在线看一大j8| 国精产品久拍自产在线网站| 免费欧美一区| 亚洲国产小视频在线观看| www.51色.com| 久久精品97| 欧美亚洲日本国产| 日韩久久一级片| av在线中出| 亚洲一区二区视频在线| 在线观看成人免费| 午夜伦理在线| 国产精品国产三级国产普通话三级| 久久久久久久久久久久久9999| av在线亚洲天堂| 久国产精品韩国三级视频| 国产黑人绿帽在线第一区| 日本va欧美va国产激情| 亚洲婷婷免费| 欧美激情亚洲精品| 欧美日韩人妻精品一区二区三区| 日韩在线精品| 日韩资源在线观看| 性猛交娇小69hd| 久久99高清| 亚洲一级免费视频| 天天躁夜夜躁狠狠是什么心态| 欧美日韩大片免费观看| 亚洲精品国产suv| 丰满大乳奶做爰ⅹxx视频 | 色综合一区二区三区| 久色视频在线播放| 女厕盗摄一区二区三区| 精品日本高清在线播放| 凹凸国产熟女精品视频| 美女网站在线看| 欧美视频一二三| 日本新janpanese乱熟| 精品123区| 欧美福利一区二区| 性xxxxxxxxx| 看全色黄大色大片免费久久久| 亚洲国产精品中文| 全黄一级裸体片| 奇米影视亚洲| 精品少妇一区二区30p| 久久久精品99| 久久九九电影| 成人午夜高潮视频| 国产免费不卡av| 成人爽a毛片一区二区免费| 精品蜜桃传媒| 成人动漫在线免费观看| 中文字幕字幕中文在线中不卡视频| 特级毛片在线免费观看| 久久免费电影| 一本大道av一区二区在线播放| 国产一区二区在线免费播放| 精品999日本久久久影院| 精品999在线播放| 中文字幕免费高清| 久久精品影视| 欧美一级淫片videoshd| 91精品国产乱码久久久| 成人爽a毛片一区二区免费| 日韩久久不卡| 污网站在线免费看| 一本高清dvd不卡在线观看| 色综合五月婷婷| 欧美日韩直播| 久久久精品日本| 青青青国产在线| 激情欧美日韩一区二区| 九9re精品视频在线观看re6| 三区四区在线视频| 午夜精品爽啪视频| 国产一伦一伦一伦| 日本成人中文| 色综合久综合久久综合久鬼88 | 欧美色倩网站大全免费| 亚洲一区二区三区黄色| 日韩毛片视频| 38少妇精品导航| 亚洲精品国偷拍自产在线观看蜜桃| 久久精品亚洲精品国产欧美kt∨| 国产成人永久免费视频| 日韩国产一二三区| 亚洲欧美变态国产另类| 国产在线视频第一页| 精品影视av免费| 日产中文字幕在线精品一区| 久久无码高潮喷水| 色无极影院亚洲| 自拍视频亚洲| 国产精品国产自产拍高清av水多| 成人av免费播放| 欧美国产综合一区二区| 国产午夜大地久久| 国内精品视频| 色七七影院综合| 狠狠人妻久久久久久| 国产99久久久久久免费看农村| 亚洲一区二区自拍偷拍| av在线日韩| 国产视频在线观看一区二区| 日本学生初尝黑人巨免费视频| 激情另类小说区图片区视频区| 亚洲图片欧洲图片日韩av| 粉嫩一区二区三区| 亚洲乱码av中文一区二区| 国产一级一片免费播放放a| 国产精选一区二区三区| 国产福利片一区二区| 久久久久久一区二区三区四区别墅| 亚洲免费伊人电影在线观看av| 亚洲男人第一av| av亚洲精华国产精华精| 免费拍拍拍网站| 精品三级av| 91成人天堂久久成人| 亚洲区小说区图片区| 丁香五六月婷婷久久激情| 国产美女视频免费观看下载软件| 在线精品一区| 精品无码久久久久久久动漫| av免费不卡国产观看| 日韩理论片久久| 亚洲不卡视频在线观看| 久久夜色精品国产噜噜av| 国产精品亚洲αv天堂无码| 中文精品一区二区| 国产福利精品av综合导导航| 91xxx在线观看| 欧美一区二区三区性视频| 精品国产视频一区二区三区| 国产福利视频一区二区三区| 精品国偷自产一区二区三区| 看全色黄大色大片免费久久久| 97在线观看视频| 邻居大乳一区二区三区| 日本道色综合久久| 欧美乱大交做爰xxxⅹ小说| 蜜臀av性久久久久蜜臀aⅴ流畅| 天天人人精品| 欧州一区二区三区| 97精品在线视频| 国产福利在线视频| 3d动漫精品啪啪1区2区免费| 成人免费看片98| 久久亚洲综合色一区二区三区| 第四色婷婷基地| 欧美久久综合| 欧美性色黄大片人与善| 4438五月综合| 孩xxxx性bbbb欧美| jizz亚洲| 亚洲精品一线二线三线| 国产伦精品一区二区三区视频我| 国产精品久久毛片| 亚洲色偷偷色噜噜狠狠99网| 丝瓜av网站精品一区二区| 中文精品一区二区三区| 丁香5月婷婷久久| 国产精品高精视频免费| 91高清在线观看视频| 国产视频久久久久| 一区二区三区免费观看视频| 亚洲成人自拍一区| 日韩视频在线观看免费视频| 福利一区二区在线| 9久久婷婷国产综合精品性色| 中文字幕乱码亚洲无线精品一区| 久久久久一区二区三区| 韩国三级大全久久网站| 日韩av免费在线观看| h片在线观看网站| 亚洲人午夜精品| 男人的天堂a在线| 欧美剧情片在线观看| 日本三级小视频| 亚洲精品美腿丝袜| 91网站免费入口| 波多野结衣91| 日本r级电影在线观看| 久久久噜噜噜久久狠狠50岁| 日本五级黄色片| 91青青国产在线观看精品| 久久久精品国产一区二区三区| 成人在线啊v| 国产精品成人观看视频国产奇米| √天堂8在线网| 日韩在线观看免费全集电视剧网站| 婷婷五月综合激情| 日韩欧美一区二区视频| 中文字幕一二三四| 91福利视频网站| 欧美a∨亚洲欧美亚洲| 亚洲最大成人综合| 午夜国产福利一区二区| 中文字幕在线播放不卡一区| 久久视频精品在线观看| 久久久久久久性| a级在线观看视频| www.欧美日韩| 亚洲欧美日韩偷拍| 成人一二三区视频| 小日子的在线观看免费第8集| 久久99精品网久久| 午夜剧场高清版免费观看| 日韩电影在线免费看| 国产91对白刺激露脸在线观看| 1024成人| 日本十八禁视频无遮挡| 激情欧美一区| 欧美亚洲日本一区二区三区| 黄色在线一区| 日韩黄色短视频| 国产偷自视频区视频一区二区| 91九色丨porny丨国产jk| 国产精品hd| 人妻无码久久一区二区三区免费| 亚洲免费播放| 91视频最新入口| 三级一区在线视频先锋| 精品久久久久久中文字幕2017| 日韩av一级片| 97人人爽人人| 国产精品一区二区免费不卡 | 精品久久久网站| 成人毛片在线免费观看| 亚洲第一中文字幕在线观看| 五月天婷婷视频| 亚洲三级av在线| 天堂资源在线中文| 欧美xxxx做受欧美| 第一av在线| 91产国在线观看动作片喷水| 欧美性xxx| 成人免费看片视频| 综合伊人久久| 就去色蜜桃综合| 日韩精品免费| 黄色a级片免费看| 性高湖久久久久久久久| 一级特黄性色生活片| 黑人精品欧美一区二区蜜桃| 在线观看一区二区三区四区| xnxx国产精品| 在线免费看av网站| 亚洲高清免费观看高清完整版在线观看 | 欧美黑人巨大精品一区二区| 日韩深夜视频| 成人黄色免费看| 懂色av一区二区| 亚洲成人自拍| 亚洲小说欧美另类社区| 37pao成人国产永久免费视频| 久久国产精品色| 超碰caoprom| 欧美激情一区二区三区蜜桃视频| 欧美极品aaaaabbbbb| 欧美性猛交xxxxx免费看| 一级特黄aaa大片在线观看| 精品国产91九色蝌蚪| 浮生影视网在线观看免费| 欧美二区在线播放| 成人免费网站www网站高清| 91国产在线播放| 美女毛片一区二区三区四区最新中文字幕亚洲| 亚洲ai欧洲av| 亚洲福利精品| 999久久久精品视频| 久久亚洲一级片| 欧美另类视频在线观看| 欧洲av在线精品| 蜜臀久久精品久久久久| www.欧美免费| 韩国成人漫画| 国产精品免费观看高清| 99精品全国免费观看视频软件| 青青艹视频在线| 国产成人在线视频网址| 91av手机在线| 在线看日韩精品电影| 五月婷婷六月丁香| 欧美成人午夜激情在线| 国产精品无码久久久久| 欧美在线视频一区二区三区| 激情自拍一区| 超碰91在线播放| 国产精品视频第一区| 日本中文字幕久久| 亚洲激情视频网| 色yeye免费人成网站在线观看| 国产美女高潮久久白浆| 国产一区二区三区电影在线观看 | 久久av中文字幕片| 国产jjizz一区二区三区视频| 亚洲444eee在线观看| 国产jzjzjz丝袜老师水多| 亚洲午夜未满十八勿入免费观看全集| 国产精品一区二区日韩| 国产精品一区二区三区精品| 牛夜精品久久久久久久99黑人| 国产乱码一区二区三区四区| 欧美激情资源网| 艳妇乳肉豪妇荡乳av无码福利| 亚洲欧美成人网| 欧美色999| 日韩欧美亚洲日产国产| 日韩精品一二三四| 人妻一区二区视频| 色婷婷综合在线| 青春有你2免费观看完整版在线播放高清| 午夜精品久久久久久久久久久久 | 欧美一区午夜视频在线观看| 午夜国产福利在线| 成人国产精品免费视频| 99热在线成人| 五月天婷婷在线观看视频| 国产午夜精品一区二区三区视频 | 日产欧产美韩系列久久99| 精品国产无码在线观看| 欧美色播在线播放| 欧美精品少妇| 国产成人精品在线视频| 免费看日本一区二区| 久久久精品麻豆| 国产精品久久久久久久久搜平片| 国产又爽又黄又嫩又猛又粗| 久久国产精彩视频| 欧美三级一区| 人妻久久久一区二区三区| 91欧美一区二区| 夜夜爽妓女8888视频免费观看| 最新国产精品拍自在线播放| 999精品嫩草久久久久久99| 久久男人资源站| 92国产精品观看| www.久久久久久久| 日韩性生活视频| 亚洲精品国产九九九| 欧美精品一区二区三区三州| 久久久久99精品一区| 亚洲综合精品在线| 色综合久久88色综合天天看泰| 亚洲成人一品| 日韩一区二区三区久久| 亚洲精品乱码久久久久久久久 | 99久久er热在这里只有精品66| 久久精品视频5| 日韩网站免费观看高清| 大奶在线精品| 在线免费观看视频黄| 亚洲综合一二区| 岛国在线视频| 99视频网站| 丝袜诱惑制服诱惑色一区在线观看| 四虎地址8848| 日韩精品视频免费专区在线播放 | 亚洲男同gay网站| 免费精品视频一区二区三区| 国内外成人在线视频| 特黄视频免费看| 欧美成人高清视频| 国产成人一区| 大桥未久恸哭の女教师|