最新要闻
- 诺德基金张昳泓:市场板块分化明显,经济呈现弱复苏态势-环球速讯
- 现实版《速度与激情》 女司机误将拖车当上坡上演飞车特技
- 奶牛听着音乐按摩挤奶!认养一头牛纯牛奶大促:74.9元3箱 天天看热讯
- 入门即满配成标杆!岚图5月交付新车3003辆 同比大涨231%
- 集团破产重整 资产被轮番拍卖!众泰董事长辞职
- 天天热资讯!六一演出现场的最美妈妈团 一身旗袍扭腰跳舞太惊艳:网友直呼身材颜值绝
- 鹤壁市浚县卫贤镇尚村_貉子皮尚村最新价格|环球快资讯
- 阿里云AI新产品“通义听悟”重磅发布:快科技邀你免费用!
- 45元一杯"智商税"!酸奶刺客收割年轻人钱包 世界快讯
- 环球视讯!不愧为工作狂!马斯克深夜到访特斯拉上海超级工厂:查看新款Model 3
- 首发799元起 Redmi电竞显示器G27/G27Q开售:165Hz超高刷 全球快看
- 网红扎堆到麦地直播割麦 网友热议:很反感 流量噱头
- 2023新疆高考志愿投档规则
- 全球热点评!国产GPU公司景嘉微募资42亿:研发高性能显卡 可用于大型游戏
- 积极拥抱生僻字!阿里普惠体推出3.0版本:免费商用-当前讯息
- 今日关注:为何坚持使用高压油箱?吉利研究院副院长:常压油箱不可能达标
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
linux 性能自我学习 ———— cpu 切换带来的性能损耗 [二] 世界热点
前言
我们知道现在操作系统,都是多进程和多线程,那么会有一个操作系统帮助我们去切换进程和线程,这个是要消耗cpu资源的,那么就来了解一下cpu资源消耗情况。
(资料图)
正文
一般是下面几个场景切换:
进程上下文切换
线程上下文切换
中断上下文切换
在了解进程切换的时候,需要了解另外一个东西,进程的运行环境,进程的运行环境分为内核空间和用户空间。
linux 按照特权等级,把进程的运行空间分为内核空间和用户空间,分布对应着上图中的,cpu 特权等级ring0 和 ring3。
进程既可以在用户态空间运行,又可以在内核空间中运行,进程在用户空间运行时,被称为进程的用户态,而陷入内核空间的时候,被称为进程的内核态。
举个例子,我们需要进行读取文件。
首先需要调用open 打开文件
然后调用read 读取文件内容
并调用write 将内容写到标志输出
然后close。
那么这个时候cpu的上下文切换是怎么样的呢?
cpu 寄存器里原来用户态的指令位置(寄存器),先保存起来。为了执行内核态代码,cpu 寄存器需要更新为内核态指令的新位置。然后就跑到了内核态执行内核任务了。
而系统调用后,cpu 寄存器需要恢复到原来保存的用户态,然后再切换到用户空间,继续运行进程。
一次系统调用,那么需要两次cpu切换。
系统调用过程中,并不会涉及到虚拟内存等进程用户态的资源,也不会切换进程,这和进程切换不一致。
也就是说系统调用是同一个进程,发生了cpu 上下文切换(也叫特权模式切换),而进程切换,是进程进行了切换。
那么进程的上下文切换是怎么样的呢?
首先进程是由内核来管理和调度的,进程的切换只能发生在内核态。所以,进程的上下文切换不仅包含了虚拟内存、栈、全局变量等用户空间资源,还包含了内核堆栈、寄存器等内核空间的状态。
因此进程的上下文就比系统调用多了一步,在保存当前进程的内核状态和cpu寄存器之前,需要把该进程的虚拟内存,栈等保留下来;而加载下一进程的内核态后,还需要刷新进程的虚拟内存和用户栈。
这些现在不需要过于了解,在我后面介绍操作系统系列的时候,会详细描述。
只需要知道其复杂高于系统调用即可,其步骤多了保存用户空间资源的描述等。
那么讲完了进程的上下文切换,那么讲一下线程的上下文切换。
我们知道线程才是cpu 运行的最小单位,其实进程切换就是两个线程来自不同的进程,那么两个线程来自同一进程呢?这时候的cpu 操作是怎么样的呢?
有一个很关键的知识需要了解: 线程是调度的基本单位,而进程则是资源拥有的基本单位。说白了,内核的任务调度的对象是线程;而进程提供给线程虚拟内存,全局变量等资源。
这个时候就明白了,如果线程来自同一个进程,那么就不需要切换虚拟内存,只需要切换线程的私有数据、寄存器等不共享的数据。
那么还有一类场景是中断上下文切换。
为了快速响应硬件的事件,中断处理会打断进程的正常调度和执行,转而调用中断处理程序,响应设备时间。
而在打断其他进程时,就需要将进程状态保存下来,这样在中断结束后,进程依然可以从原来的状态恢复。
跟进程上下文不同,中断上下文切换并不涉及到进程的用户态。所以即便中断过程打断一个正处于用户态的进程,也不需要保留和恢复进程的虚拟内存、全局变量等用户态资源。
中断上下文,其实只包含内核态中断服务执行必须的状体,包括cpu 寄存器、内核堆栈、硬件中断参数等。
对同一个cpu来说,中断处理比进程拥有更高的优先级,所以中断上下文切换并不会与进程上下文切换同时发生。
同样道理,由于中断会打断正常进程的调度和执行,所以大部分中断处理程序短小精悍,以便可能快的执行结束。
另外,跟进程上下文切换一样,中断上下文切换也需要消耗cpu,切换次数过多也会导致消耗大量的cpu,甚至英雄降低系统的整体性能。
所以,你发现中断次数过多时,就需要注意去排查它是否会给你的系统带来严重的性能影响。
实验
我们知道除了线程需要调用cpu外,上下文还可能导致cpu高,那么怎么确定是不是上下文切换导致cpu高呢?
那么我们怎么来定位呢?
cs (context switch) 每秒上下文切换的次数
in (interrupt) 则是每秒中断的次数
r (running or runnable) 是就绪队列的长度,也就是正在运行和等待cpu的进程数。
b (blocked) 则是处于不可中断睡眠的进程数。
上图中可以看到cs 上下文切换了大概1.4k左右,in 中断大概接近 1k,r 是0, b 是0.
那么如何我们想知道到底是哪个进程中断次数比较多呢?
cswch 表示每秒资源上下文切换的次数 (voluntary context switchs)
另外一个是nvcswch (none voluntary context switchs) 的次数
那么什么是自愿,什么是非自愿呢?
自愿救赎指系统无法获取所需资源,导致上下文切换。比如i/o、内存等系统资源不足时,就会发生资源上下文切换。
而非自愿切换,则是进程由于时间片等原因,被系统强制调度进而发生的上下文切换。比如大量进程都在争抢cpu时,就容易发生非资源上下文切换。
那么上下文切换多次次数算是正常呢?
使用sysbench 模拟线程直接的切换:
sysbench --thread=10 --max-time=300 threads run
然后vmstat 进行切换。
可以看到 cs 非常高,in 相对少,说明线程或者进程直接的切换,而不是系统中断发生的。
r 列非常高,远超cpu 内核2个。
然后us 和 sy,分别是33 和67,说明内核占用比较大。
虽然in 比较少,但是上升也很快,说明系统中断也是有一部分。
那么到底是哪个进程导致的呢?
通过:
pidstat -w -u 1
可以看到sysbench cpu 190%。
那么是sysbench 的问题。
那么问题就来了,这里不管自愿还是非自愿的上下文切换次数,远远达不到我们看到的十几万次数。
这是为什么呢? 因为这是进程的切换次数,如果这个进程一直捕获的cpu,那么哪有什么机会去获得进程切换的机会?
那么需要这样查看:
pidstat -wt 1
那么现在上下文切换的次数找到了,那么看下系统中断的原因。
查看cpu 中断的原因:
watch -d cat /proc/interrupts
可以看到res 变化很大,res 是重调度中断,这个中断类型表示,唤醒空闲状态cpu来调度新的任务运行。
调度器用来分散任务到不同cpu的机制,通常也被称为处理器间中断。
所以中断升高还是因为任务的调度问题,跟前面一致。
那么问题来了,多少cpu 上下文切换算是正常呢? 一般是1w以内。
自愿切换变多了,说明进程在等待资源,那么是io问题
非自愿切换变多了,那么就是进程被强制调度,也就是在争抢cpu,说明cpu到达瓶颈了。
中断次数变多了,说明cpu被中断处理程序占用,还需要通过查看/proc/interrupts 文件查看。
结
后面两节实战一些例子。
关键词:
linux 性能自我学习 ———— cpu 切换带来的性能损耗 [二] 世界热点
介绍.NET几种人脸识别组件
诺德基金张昳泓:市场板块分化明显,经济呈现弱复苏态势-环球速讯
现实版《速度与激情》 女司机误将拖车当上坡上演飞车特技
奶牛听着音乐按摩挤奶!认养一头牛纯牛奶大促:74.9元3箱 天天看热讯
入门即满配成标杆!岚图5月交付新车3003辆 同比大涨231%
集团破产重整 资产被轮番拍卖!众泰董事长辞职
天天热资讯!六一演出现场的最美妈妈团 一身旗袍扭腰跳舞太惊艳:网友直呼身材颜值绝
玖章算术NineData荣获信通院“生成式人工智能技术和应用优秀案例”奖|天天视讯
鹤壁市浚县卫贤镇尚村_貉子皮尚村最新价格|环球快资讯
阿里云AI新产品“通义听悟”重磅发布:快科技邀你免费用!
45元一杯"智商税"!酸奶刺客收割年轻人钱包 世界快讯
环球视讯!不愧为工作狂!马斯克深夜到访特斯拉上海超级工厂:查看新款Model 3
首发799元起 Redmi电竞显示器G27/G27Q开售:165Hz超高刷 全球快看
网红扎堆到麦地直播割麦 网友热议:很反感 流量噱头
2023新疆高考志愿投档规则
天天热点评!axi_crossbar IP使用说明
直播app源码技术开发知识:横竖屏功能的实现
编写Java代码时应该避免的6个坑
Linux实验文档
Python装饰器
全球热点评!国产GPU公司景嘉微募资42亿:研发高性能显卡 可用于大型游戏
积极拥抱生僻字!阿里普惠体推出3.0版本:免费商用-当前讯息
今日关注:为何坚持使用高压油箱?吉利研究院副院长:常压油箱不可能达标
音视频会议神器!阿里云通义听悟正式发布:轻松记录总结、实时翻译
2K-3K价位段无敌!Redmi K60斩获618首销双冠军|每日讯息
天天新消息丨淘宝开店多少钱能开直通车_淘宝开店多少钱
全球滚动:攻防世界_PWN_stack2
世界热头条丨MySQL表列数和行大小限制
天天观热点:为什么JS中0.1+0.2不等于0.3
美国会众议院通过债务上限法案 全球热点评
低到13.48万元起步 江西五十铃现款D-MAX年中大促_全球热点评
被人类幼崽萌化的瞬间:画面实在太可爱!祝愿大家六一快乐
访华后特斯拉股价大涨 马斯克重返世界首富宝座
播报:老外试驾法拉第未来FF 91被震撼:从未见过副驾驶有屏幕的车子
旧机福音 极限精简版Win10系统Tiny10更新:64位支持来了|全球百事通
坐飞机也要称体重 新西兰航空登机前将给国际旅客称重-天天热推荐
仙佑膏药逐步实现标准化 公司规范化生产管理水平
在 Ubuntu 上使用 ADB 备份 Android 数据 世界热议
环球热文:南运河南路与金钟桥大街交口车行道调整
全球快报:14代酷睿有望首发 Intel开发Wi-Fi 7芯片:网速狂飙4.8千兆
热点!男孩六一表演化身行走表情包 全情投入阳光自信:网友看笑不愧C位
26次高考落榜大叔继续冲击重本 网友吐槽哗众取宠、炒作:本人回应
【速看料】马斯克到访特斯拉上海超级工厂 陶琳深夜发声:激动人心 收获满满
头条:关于nokia_6270的问题
大数据面试题集锦-Hadoop面试题(二)-HDFS
世界关注:人民币汇率跌破7.1,原因是什么?专家解读
被苹果抛弃了!初代iPad Air被列为过时产品 观天下
超越苹果M2 AMD锐龙7000全新AI性能实战:等14代酷睿来战-世界关注
售价超2万元!苹果首款头显Reality Pro高清渲染图出炉:下周发布
环球关注:马娘翻译:被白兴大人附身的福来
2023年4月和5月随笔
儿童节的梦想!妈妈 我想要一本“黑客攻防指南”
热议:CPU时代又回来了?英伟达股价大跌5% 英特尔逆势上涨
SD协议-状态机-天天观速讯
世界微动态丨哪种商业医疗保险好呢_比较好的商业医疗保险
环球关注:杀6000万头差点灭绝 奉为国兽还杀:为何美国跟野牛过不去?
四辆车狭路相逢挤一起 网友:两车道整出四车道|天天通讯
世界热议:一个时代落幕!《英联联盟》今日13.11版重磅更新:正式放弃32位系统
美女云集!网飞韩剧《绝世网红》中字预告首曝:宋雨琦客串 世界观速讯
儿童节快乐!今天6月1日 微信上线卖萌、带娃限时状态
天天新资讯:禾的组词一年级云组词_禾的组词一年级
大戏看北京 6月文艺资讯-每日资讯
发现增加了预防链球菌感染的希望 环球快讯
车贷担保人会影响征信吗
今日热闻!小迪网安笔记一:基础入门
世界微头条丨Doris(六) -- 查询语法和内置函数
重装系统之后发现网卡驱动丢了,怎么办?一招解决_世界简讯
云从科技:目前基础部分的算力需求能够被基本满足_全球热资讯
暴雪对《暗黑破坏神4》服务器感觉良好:我们准备好了!
【独家焦点】电影《诛仙1》CCTV6今晚开播收视登顶!肖战、李沁主演
天天滚动:注意!江苏苏州将发放1亿元购车补贴 一次性可补五千
日版实体版《死亡细胞:重返恶魔城》将9月14日发售 为特别好评作品
真人电影《勿言推理》追加演员阵容公布 永山瑛太将出演影片
《原神》七圣召唤国际大赛将于今年举办 为上线以来首次官方国际赛事
玩家打造全球最小GC主机 方正小巧造型吸引众人的喜爱
BOSS直聘-W:耗资约400万美元回购近58.76万股-环球快看点
动画声优大西沙织因健康状况恶化将减少工作活动 曾配音《路人女主》
广东汕尾台风天刮来众多生蚝 两人一小时收获两百多斤
《斗罗大陆2》被曝最新路透照 张予曦饰演的小舞白裙绝美可人
2023新一线城市名单公布 北方仅有四座城市上榜
“高考钉子户”梁实马上迎来其第27次高考 称准备相对充分
15)触发器
天天微动态丨小程序容器助力航空企业数字化转型
全球新动态:2.单向链表
Quartz任务调度框架 世界报资讯
视点!掌握嵌入式Linux编程0简介
月度回望|“资产荒”逻辑未破 5月债市现券收益率曲线陡峭下移
当前头条:日本最大啤酒商要重返中国:你爱日啤、德啤还是国啤?
3999元起 华为Vision智慧屏3开售:720P秒变4K
刀塔循环圈单机地图 刀塔循环圈-天天即时看
React Native+小程序容器=更高的开发效率_焦点热门
全球热议:uniapp uni-number-box组件 步长为1,还能输入小数思路分享
Linux工作原理3设备 天天简讯
2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1、3、5... 次跳跃称为奇数跳跃 而第 2、4、6
世界微动态丨货币市场日报:5月31日
“暖蜂驿站”温暖“两新”群体 相城区太平街道打造“15分钟暖蜂服务圈”-每日关注
首发2999元 联想百应新款迷你主机上架:13代i5、机身仅0.5L 全球快消息
满油满电续航1370公里 加速7秒内!吉利银河L7上市:13.87万起|世界观焦点
NVIDIA发布535.98驱动更新:大幅提升《暗黑破坏神4》帧数 每日快讯