linux 上下文切换时间,CPU上下文切换的次数和时间(context switch)
什么是CPU上下文切换?css
如今linux是大多基于抢占式,CPU给每一个任务必定的服务时间,当时间片轮转的时候,须要把当前状态保存下来,同时加载下一个任务,这个过程叫作上下文切换。时间片轮转的方式,使得多个任务利用一个CPU执行成为可能,可是保存现场和加载现场,也带来了性能消耗。 那线程上下文切换的次数和时间以及性能消耗如何看呢? html
如何得到上下文切换的次数?java
vmstat直接运行便可,在最后几列,有CPU的context switch次数。 这个是系统层面的,加入想看特定进程的状况,可使用pidstat。 linux
执行pidstat,将输出系统启动后全部活动进程的cpu统计信息: 缓存
上下文切换的性能消耗在哪里呢?bash
context switch太高,会致使CPU像个搬运工,频繁在寄存器和运行队列直接奔波 ,更多的时间花在了线程切换,而不是真正工做的线程上。直接的消耗包括CPU寄存器须要保存和加载,系统调度器的代码须要执行。间接消耗在于多核cache之间的共享数据。 ide
引发上下文切换的缘由有哪些?工具
对于抢占式操做系统而言, 大致有几种:性能
一、当前任务的时间片用完以后,系统CPU正常调度下一个任务;测试
二、当前任务碰到IO阻塞,调度线程将挂起此任务,继续下一个任务;
三、多个任务抢占锁资源,当前任务没有抢到,被调度器挂起,继续下一个任务;
四、用户代码挂起当前任务,让出CPU时间;
五、硬件中断;
如何测试上下文切换的时间消耗?
LMbench,知道这个工具,是在霸爷的博客上面(http://blog.yufeng.info/archives/753),而后就开始在测试环境下搞了一把,一会就出结果了。而后就搞了台线上机器安装这个工具,而后测试,后面在测试Memory的时候,直接致使Load飙升,还好没人发现,机器java进程重启就行了。这方面纯粹是业务选手。霸爷说分析的结果对于高性能C的开发同窗来讲,是须要熟记的,没办法,咱是搞java的,只能每一个指标逐个看一下了。
LMbench的简单介绍?
首先看英文介绍:LMbench -Tools for Performance Analysis,微观性能分析工具。
LMbench主要能干啥?
主要是带宽(读取缓存文件、内存拷贝、读写内存、管道等)和反应时间(上下文切换、网路、进程建立等)的评测工具。
LMbench 安装?
中间遇到一个问题,就是报错,在CSDN上面找到了答案,这这里贴一下。
LMbench关于结果解释(此次主要关注线程切换信息)
在网上找了半天,信息不多,只能看doc下面的英文解释了。
测试上下文切换的时间,一个上下文切换,包括保存一个进程状态的保存和恢复另一个进程的时间。
典型的上下文切换性能,仅仅是测量最小的线程切换时间。仅仅是作进程切换,任何实质的任务都不作。
LMbench是如何来测量进程切换的时间的?
文章参考:
霸爷和周忱的博客
linux 上下文切换时间,CPU上下文切换的次数和时间(context switch)相关推荐
- 压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate
上篇讲如何用LoadRunner监控Linux的性能指标 ,但是关于CPU的几个指标没有搞清楚,下面就详细说说. CPU Utilization 好理解,就是CPU的利用率,75%以上就比较高了(也有 ...
- 衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate
CPU Utilization 好理解,就是CPU的利用率,75%以上就比较高了(也有说法是80%或者更高).除了这个指标外,还要结合Load Average和Context Switch Rate来 ...
- 【linux性能优化】CPU上下文切换
进程在竞争CPU的时候并没有真正运行,为什么还会导致系统的负载升高呢?其实CPU上下文切换就是罪魁祸首 一.上下文切换 Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行.当 ...
- 03 | 基础篇:经常说的 CPU 上下文切换是什么意思?(上)
上一节,我给你讲了要怎么理解平均负载( Load Average),并用三个案例展示了不同场景下平均负载升高的分析方法.这其中,多个进程竞争 CPU 就是一个经常被我们忽视的问题. 我想你一定很好奇, ...
- 2.1 CPU 上下文切换(上)
cpu上下文与切换 进程在竞争 CPU 的时候并没有真正运行,为什么还会导致系统的负载升高呢?CPU 上下文切换就是罪魁祸首. 我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量 ...
- 经常说的 CPU 上下文切换是什么意思?
本文是通过学习倪朋飞老师的<Linux性能优化实战>:经常说的 CPU 上下文切换是什么意思 CPU 上下文切换 什么是CPU上下文切换 进程上下文切换 线程上下文切换 中断上下文切换 怎 ...
- 经常说的CPU上下文切换是什么意思?(上)
经常说的CPU上下文切换是什么意思?(上) 学习倪鹏飞老师linux性能优化实践的笔记,文中大量内容来源于老师的文档材料,如果喜欢请移步文末截图中的二维码支持老师的课程: 有时候看系统的资源利用率,我 ...
- 深入理解CPU上下文切换
我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行.当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时 ...
- linux cpu上下文切换 简介
目录 什么是CPU上下文 什么是CPU上下文切换 进程上下文切换 线程上下文切换 中断上下文切换 linux的上下文切换查看 上下文切换次数多少合理? 什么是CPU上下文 Linux是一个多任务操作系 ...
最新文章
- Python常用模块之hashlib模块
- 专栏 | 基于 Jupyter 的特征工程手册:数据预处理(三)
- 4.windows和Linux下创建oracle用户名表空间,表,插入数据,用户管理表等操作
- AUTOSAR从入门到精通100讲(四十七)-车载以太网 SOME/IP-SOME/IP的概念
- sqli-lab————Writeup(18~20)各种头部注入
- 1.10 编程基础之简单排序 04 奖学金 7分 python
- Android 时间维护服务 TimeService(针对于特殊定制设备)
- STM32中的串口通信
- 数据库表TreeView树的快速生成
- 堡垒机原生ssh登陆解决方案
- 刷新iframe内容
- 互联网技术(java框架、分布式、集群)干货视频大全,不看后悔!(免费下载)
- Linux下创建和删除软、硬链接(ln)
- 将pandas中object类型转换为int类型
- Unity 自由视角的惯性旋转
- DTM测试里无线Modem应该选哪种MCU?
- Linux磁盘挂载和共享
- 景点门票销售管理系统 基于 python实现gui界面 之 笔记
- 身材要凹凸有致,感情要风清云淡
- java 考证资料_Java认证考试资料(ATA)
热门文章
- 混凝土P-M相互作用曲线计算
- 解决springboot项目方案, Failed to load property source from location ‘classpath:/application.yml‘
- WordAnyTime 1.0.0发布
- mac下搭建PHP开发环境
- Udacity利用深度学习玩赛车小游戏
- c3p0之DEBUG -- CLOSE BY CLIENT STACK TRACE
- [附源码]java+ssm计算机毕业设计家电维修服务平台771x3(源码+程序+数据库+部署)
- 大数据分析技术在新型智慧能源建设中的应用
- AI照骗恐怖如斯!美女刷屏真假难辨,网友:AI网恋诈骗时代开启
- OLED液晶屏幕(0)自动获取12ic地址液晶屏幕