003-cpu分析(上下文切换)

基本概念

CPU上下文

CPU 寄存器,是 CPU 内置的容量小、但速度极快的内存。程序计数器,则是用来存储CPU正在执行的指令位置或者即将执行的下一条指令位置。它们都是CPU在运行任何任务前,必须依赖的环境。因此被叫做CPU的上下文。

CPU上下文切换

1)将前一个任务的CPU上下文保存起来;2)加载新任务的上下文;3)跳转到程序计数器所指的新位置,运行新任务。

目的:保证任务原来的状态不受影响,让任务看起来还是连续运行。

分类

进程上下文切换

触发场景:1)CPU时间片耗尽,进程被系统挂起,切换到其它正在等待CPU的进程运行;2)进程在系统资源不足时,要等到资源满足侯才可以运行,这个时候进程也会被挂起,并由系统调度其它进程运行;3)进程通过睡眠函数sleep主动将自己挂起,自然也会重新调度;4)当有优先级更高的进程运行时;5)发生硬件中断时,CPU上的进程也会被中断挂起,转而执行内核中的中断服务程序。

线程上下文切换

两种场景:1)前后两个线程属于不同进程。此时资源不共享,切换过程就跟进程上下文切换一样。2)前后两个线程属于同一个进程。此时,因为虚拟内存是共享的,所以在切换时,虚拟内存这些资源保持不动,只需要切换线程的私有数据等不共享的数据。

中断上下文切换

为了快速响应硬件的时间,中断处理会打断进程的正常调度和执行,转而调用中断处理程序,响应设备事件。

对同一个CPU来说,中断处理比进程拥有更高的优先级。

自愿与非自愿上下文切换

自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。比如IO、内存等系统资源不足。

非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的。比如说大量进程都在争抢CPU时,就非常容易发生非自愿上下文切换。

应用总结

1、CPU上下文切换是保证linux洗正常工作的核心功能之一,一般情况下我们不需要特别关注;

2、但过多的上下文切换,会把CPU事件消耗在寄存器、内核栈一级虚拟内存等数据的保存和恢复上,从而缩短进程真正运行的时间,导致系统的整体性能大幅下降。

监控

step1:查看系统总体的上下文切换情况

#vmstat  5   详细使用见vmstat命令详解

step2:查看每个进程的上下文切换情况

#pidstat -w 5  详细使用见pidstat命令详解

step3:查看每个线程的上下文切换情况

#pidstat -wt 5

step4:查看中断情况

#watch -d cat /proc/interrupts

查看系统中断情况

过载经验值:这个数值取决于系统本身的CPU性能。如果系统的上下文切换次数比较稳定,那么从数百到1万以内都算正常,但是上下文切换次数超过1万次,或者切换次数出现数量级的增长时,就有可能出现了性能问题。

结果分析

1、自愿上下文切换变多,说明进程都在等待资源,有可能发生了IO问题;

2、非自愿上下文切换变多,说明进程都在被强制调用,也就是在争抢CPU,说明CPU成了瓶颈;

3、中断次数变多,说明CPU被中断处理程序占用,需要分析具体的中断类型来进一步定位。

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