cpu性能篇

平均负载

定义

uptime

[root@k8s-1 ~]# uptime
17:27:57 up 91 days,  4:35,  2 users,  load average: 0.00, 0.01, 0.05

load average 有3个指标,分别是:1分钟平均负载、5分钟平均负载、15分钟平均负载 ,我们可以根据这三个指标,看到我们当前的系统负载整体是下降的,还是上升的。

平均负载是指 单位时间内,系统处于可运行状态或者不可中断状态的平均进程数。

可运行状态:正在使用CPU的进程和等待使用CPU的进程

不可运行状态:指进程正处于内核态关键流程中的进程,并且这些流程是不可被打断的,比如最长久的是等待硬件设备的I/O响应

平均负载多少时合理?

当前有多少的CPU

查看top或者/proc/cpuinfo

[root@k8s-1 ~]# cat /proc/cpuinfo |grep "model name"|wc -l

1

当平均负载比CPU个数还大的时候,系统已经出现了过载。当平均过载超过CPU的70%时,就应该有问题了


平均负载与CPU使用率

平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数,所以,他不仅包扩了正在使用CPU的进程,还包括等待CPU和等待 I/O的进程。

而CPU使用率,是单位时间内CPU繁忙情况的统计,和平均负载并不一定完全对应。比如:

CPU密集型进程,使用大量CPU会导致平均负载升高,此时这两者是一致的。

I/O 密集型进程, 等待I/O也会导致平均负载升高,但是CPU使用率不一定很高。

大量等待CPU的进程调用也会导致平均负载升高,此时的CPU使用率也会比较高。

平均负载案例分析

这里会用到2个工具,stress和sysstat

stress是一个Linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。

sysstat是一个linux性能工具,用来监控和分析系统的性能,以下案例中会用到这个包的2个命令mpstat和pidstat。

mpstat 是一个常用的多核CPU性能分析工具用来实时查看每个CPU的性能指标,一级所有CPI的平均指标。

pidstat 是一个常用的进程性能分析工具,用来实时查看进程的CPU、内存、I/O以及上下文切换等性能指标。

场景1:CPU密集型进程

[root@k8s-1 ~]#  stress --cpu 1 --timeout 600
stress: info: [19419] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd

场景二:I/O 密集型进程

[root@k8s-1 ~]# stress -i 1 --timeout 3600
stress: info: [21249] dispatching hogs: 0 cpu, 1 io, 0 vm, 0 hdd



pidstat -u -r 5 1

Linux 3.10.0-514.26.2.el7.x86_64 (k8s-1) 07/30/2019 _x86_64_ (1 CPU)


06:16:27 PM  UID      PID    %usr %system  %guest    %CPU  CPU  Command

06:16:32 PM    0      7024    0.20    0.20    0.00    0.40    0  kube-proxy

06:16:32 PM    0    10434    0.20    0.00    0.00    0.20    0  rsyslogd

06:16:32 PM    0    13106    0.20    0.00    0.00    0.20    0  AliYunDun

06:16:32 PM    0    18527    0.20    0.00    0.00    0.20    0  supervisord

06:16:32 PM    0    21121  99.00    0.00    0.00  99.00    0  stress

06:16:32 PM    0    21171    0.00    0.20    0.00    0.20    0  pidstat


场景三:大量进程的场景

[root@k8s-1 ~]#  stress -c 24 --timeout 3600

stress: info: [21425] dispatching hogs: 24 cpu, 0 io, 0 vm, 0 hdd



[root@k8s-1 ~]# pidstat -u 5 1

Linux 3.10.0-514.26.2.el7.x86_64 (k8s-1) 07/30/2019 _x86_64_ (1 CPU)


06:19:46 PM  UID      PID    %usr %system  %guest    %CPU  CPU  Command

06:19:51 PM    0      7024    0.00    0.20    0.00    0.20    0  kube-proxy

06:19:51 PM    0    10442    0.00    0.20    0.00    0.20    0  dockerd-current

06:19:51 PM    0    13106    0.20    0.00    0.00    0.20    0  AliYunDun

06:19:51 PM    0    21426    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21427    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21428    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21429    3.99    0.00    0.00    3.99    0  stress

06:19:51 PM    0    21430    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21431    3.99    0.00    0.00    3.99    0  stress

06:19:51 PM    0    21432    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21433    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21434    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21435    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21436    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21437    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21438    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21439    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    0    21440    4.19    0.00    0.00    4.19    0  stress

06:19:51 PM    .....



[root@k8s-1 ~]# mpstat -P ALL 5 1

Linux 3.10.0-514.26.2.el7.x86_64 (k8s-1) 07/30/2019 _x86_64_ (1 CPU)


06:22:03 PM  CPU    %usr  %nice    %sys %iowait    %irq  %soft  %steal  %guest  %gnice  %idle

06:22:08 PM  all  99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00

06:22:08 PM    0  99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00


Average:    CPU    %usr  %nice    %sys %iowait    %irq  %soft  %steal  %guest  %gnice  %idle

Average:    all  99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00

Average:      0  99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345