1,主频

主频 = 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍;

时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍;

2,时钟周期

时钟周期 t =1/ f; 主频的倒数

3,机器周期

机器周期A  = m*t ;一个机器周期包含若干个时钟周期

4,指令周期

指令周期B = m*t*n; 执行一条指令所需要的时间,一般包含若干个机器周期

5,CPI

CPI = m*n;  平均每条指令的平均时钟周期个数

指令周期B = CPI×机器周期 = n(CPI=n)×m×时钟周期=nm/主频f, 注意指令周期单位是s或者ns,CPI无量纲

参考:https://en.wikipedia.org/wiki/Cycles_per_instruction

6,MIPS(MillionInstructions Per Second)

MIPS = 每秒执行百万条指令数 = 1/(CPI×时钟周期)= 主频/CPI

MFLOPS 每秒百万浮点运算次数。

表示秒钟所能执行的指令条数,对于微型计算机可用CPU的主频和每条指令的执行所需的时钟周期来衡量。

包含关系:指令周期通常用若干个机器周期来表示,在机器语言中,使用执行一条指令所需要的机器周期数来说明指令执行的速度。而机器周期又包含若干个时钟周期。时钟周期是最基本的操作单位。

参考: https://en.wikipedia.org/wiki/Instructions_per_second

注意:计算机的运算速度一般用每秒钟所能执行的指令条数来表示。由于不同类型的指令所需时间长度不同,因而运算速度的计算方法也不同。例如,根据不同类型的指令出现的频度,乘上不同的系数求得统计平均值,得到平均运算速度。这种方法用MIPS(Millions of Instruction Per Second)作单位,即每秒百万条指令。

又如,直接给出CPU的主频和每条指令的执行所需的时钟周期。周期一般以MHz为单位。主频即计算机的时钟频率,它在很大程度上决定了主机的工作速度。例如,型号为486DX-133的微型计算机,表明它的CPU型号为486,DX为含浮点处理器,数字133的含义是主频为133MHz。

题: 若某处理器的时钟频率为500MHz,每4个时钟周期组成一个机器周期,执行一条指令需要3个机器周期,则该处理器的一个机器周期▁8▁ns,平均执行速度为▁42▁MIPS

解析如下:

时钟周期T等于主频的倒数,即T=1/500MHz=1/(0.5×10的9次方Hz)=2 ns,机器周期等于4个时钟周期即=4T=4×2 ns=8 ns,每条指令的时钟周期数CPI=3×4=12,则平均速度为:f/(CPI×10的6次方)=(500×10的6次方)/(12×10的6次 方)=500/12=41.6≈42MIPS.计算主频的倒数时要注意把主频的MHz换算成Hz即500后面加6个0=500×10的6次方=0.5×10的9次方,1/10的9次方 Hz=1ns

每条指令的时钟周期数CPI=3×4=12,执行一条指令需要3个机器周期数,一个机器周期包含4个时钟周期,所以CPI=3×4=12,这里计算 的都是周期的个数,和具体的时间ns纳秒没有关系,若带上具体的时间,一个时钟周期T=2ns,一个机器周期就是2×4=8ns,执行一条指令需要三个机 器周期得出执行一条指令需要的具体时间为3×8=24ns,执行每条指令的需要的时钟周期数CPI换句话说就是把执行每条指令需要的时间24ns换算成时 钟周期个数表示,为多少个时钟周期个数?时钟周期是最基本的时间操作单位,500MHz主频的处理器一个时钟周期为2ns,24ns等于多少个时钟周期?24/2=12个时钟周期,即那一句:“每条指令的时钟周期数CPI=12”。

CPI,IPC的关系及性能相关描述

每指令周期数(CPI)是一个很重要的高级指标,用来描述CPU如何使用他的时钟周期,同时也可以用来理解CPU使用率的本质。这个指标也可以被表示未每周期指令书(instructions per cycle,IPC),即CPI的倒数。

CPI较高代表CPU经常陷入停滞,通常都是在访问内存。而较低的CPI代表CPU基本没有停滞,指令吞吐量较高。这些指标指明了性能调优的主要工作方向。

内存访问密集的负载,可以通过下面的方法提高性能,如使用更快的内存(DRAM)、提高内存本地性(软件配置),或者减少内存I/O数量。使用更高时钟频率的CPU并不能达到预期的性能目标,因为CPU还是需要为等待内存I/O完成而花费同样的时间。换句话说,更快的CPU意味着更多的停滞周期,而指令完成速率不变。

CPI的高低与否实际上和处理器以及处理器功能有关,可以通过实验方法运行已知的负载得出。例如,你会发现高CPI的负载可以使CPI达到10或者更高,而在低CPI的负载下,CPI低于1(受益于前述的指令流水线和宽度技术,这是可以达到的)。

值得注意的是,CPI代表了指令处理的效率,但并不代表指令本身的效率。假设有一个软件改动,加入了一个低效率的循环,这个循环主要在操作CPU寄存器(没有停止周期):这种改动可能会降低总体CPI,但会提高CPU的使用和利用度。

uptime命令,执行结果如下:

1、10:19:04 //系统当前时间 
2、up 257 days, 18:56 //主机已运行时间,时间越大,说明你的机器越稳定。 
3、12 user //用户连接数,是总连接数而不是用户数 
4、load average // 系统平均负载,统计最近1,5,15分钟的系统平均负载(和vmstat的r列相关联)

uptime得出的1分钟、5分钟、15分钟的三个值除以逻辑核数都大于1,说明cpu负载很大,至于瓶颈需要分析了:

CPU 密集型进程,使用大量 CPU 会导致平均负载升高,这时候两者是一致的。
I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高。
大量等待 CPU 的进程调度也会导致平均负载很高,此时的 CPU 使用率也会比较高

工具法检查CPU:

1. uptime:检查负载平均数以确认CPU负载是随时间上升还是下降。负载平均数超过了CPU数量通常代表CPU饱和。

2. vmstat:每秒运行vmstat,然后检查空闲列,看看还有多少余量。少于10%可能是一个问题。

3.mpstat:检查单个热点(繁忙)CPU,挑出一个可能的线程扩展性问题。

4.top/prstat : 看看哪个进程和用户是CPU消耗大户。

5.pidstat /prstat: 把CPU消耗大户分解成用户和系统时间。

6. perf / dtrace / stap / oprofile : 从用户时间或者内核时间的角度剖析CPU使用的堆栈跟踪,以了解为什么使用这么多CPU。

7. perf / cpustat : 测量CPI。

USE方法检查CPU

USE方法可以在性能调查的早期,在更深入和更耗时的其他策略之前,用来发现所有组件内的瓶颈和错误。

对于每个CPU,检查一下内容:

使用率:CPU繁忙的时间(未在空闲线程中)

饱和度:可运行线程排队等待CPU的程度

错误:CPU错误,包括可改正错误

错误可以优先检查,因为检查通常较快,并且最容易理解。有些处理器和操作系统可以感知到可以改正错误的上升(错误更正码,ECC),并在不可改正错误造成CPU失效前关闭一个CPU作为警示。检查错误包括检查是否所有CPU都在线。

参考资料:https://blog.csdn.net/xiaojianpitt/article/details/7613489/

《性能之巅》

CPU性能指标的更多相关文章

  1. Linux内存性能指标、CPU性能指标

    内存性能指标 内存基础概念 先执行一下 top 命令,看结果中关于内存的相关部分 # top 其中的 VIRT.RES.SWAP 都是什么呢? 分别是下面的3个概念: 物理内存 Resident - ...

  2. CPU/寄存器/内存

    因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来. CPU,全名Central Processing Unit(中央处理器). ...

  3. 痞子衡嵌入式:微控制器CPU性能测试基准(EEMBC-CoreMark)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是微控制器CPU性能测试基准CoreMark. 在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone.MIPS.Co ...

  4. (转)理解CPU steal time

    转自:https://www.cnblogs.com/menkeyi/p/6732020.html Netflix 很关注CPU的Steal Time.他们的策略是:如果是当前虚拟机的Steal Ti ...

  5. linux性能系列--cpu

    一.先看看什么是CPU? 回答:中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和 ...

  6. 《Linux 性能优化实战—倪朋飞 》学习笔记 CPU 篇

    平均负载 指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数 可运行状态:正在使用CPU或者正在等待CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态 (Run ...

  7. 痞子衡嵌入式:微处理器CPU性能测试基准(Dhrystone)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是微处理器CPU性能测试基准Dhrystone. 在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone.MIPS.C ...

  8. [转帖] 飞腾FT2000+ CPU的进展(2019.6)

    中国长城:拟进一步收购飞腾股权,强化信息基础设施国产化平台地位 2019-06-26 09:28 http://www.sohu.com/a/323065095_100016383 今年年中的事情 浪 ...

  9. 快速分析CPU性能问题

    Linux的CPU性能问题,相信在工作中很容易遇到.这篇文章会总结出一个大概的套路,相信能够解决工作中90%以上的CPU性能问题! 会告诉大家在不同的场景下,cpu性能指标工具如何选择,性能瓶颈怎么找 ...

随机推荐

  1. django 模板里面for循环和if常用的方法

    django 模板里面for循环常用的方法 {% for %} 允许我们在一个序列上迭代.与Python的for 语句的情形类似,循环语法是 for X in Y ,Y是要迭代的序列而X是在每一个特定 ...

  2. SecureCRT配置华为S5700交换机

    我准备从交换机中监控某台设备的流量,所以要配置交换机的某个口作为镜像口,用来下载另外一个指定端口的流量. 第一步:华为5700交换机 简而言之网口部分除了最后四个都是用来连接下级网络设备的,最后四个端 ...

  3. RDD实例

    实例一: teacher.log http://bigdata.baidu.cn/zhangsan http://bigdata.baidu.cn/zhangsan http://bigdata.ba ...

  4. springboot和springcloud版本冲突问题

    最近搭建eureka项目,出现boot和cloud版本不匹配错误,记录下来 2019-12-06 14:00:20.043 ERROR 180780 --- [ main] o.s.boot.Spri ...

  5. Python3 Selenium自动化web测试 ==> 第三节 常用WebDriver API使用示例上(24个API)

    前置步骤: 安装selenium,chrome驱动,Python3.6 学习目的: 常见API的使用 涉及的API: step1: 访问一个网址 step2: 网页的前进和后退 step3: 刷新当前 ...

  6. read: Connection reset by peer

    造成此种问题的原因有多种,目前列下我所遇到过的. 1, sshfs usrname@172.23.65.122:/home/usrname ./122 在ubunutu 里面使用 sshfs 命令 映 ...

  7. 那些年,我们见过的 Java 服务端乱象

    导读 查尔斯·狄更斯在<双城记>中写道:“这是一个最好的时代,也是一个最坏的时代.” 移动互联网的快速发展,出现了许多新机遇,很多创业者伺机而动:随着行业竞争加剧,互联网红利逐渐消失,很多 ...

  8. Android渐变色xml配置

    这里渐变色: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...

  9. 测试必知150个常用Linux命令,已为各位筛选整理

    ●线上查询及帮助命令(1 个) help   如:mkdir --help   ●文件和目录操作命令(12 个)    ls tree pwd mkdir rmdir cd touch cp mv r ...

  10. Dango之模版系统

    1.模板渲染 可以传列表,字典,对象等 {{ 变量 }} {% 逻辑 %} -- 标签 urls.py path('login/', views.login), views.py def login( ...