2019独角兽企业重金招聘Python工程师标准>>>

IO bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。
CPU bound 指的是系统的 硬盘/内存 效能 相对 CPU 的效能 要好很多,此时,系统运作,大部分的状况是 CPU Loading 100%,CPU 要读/写 I/O (硬盘/内存),I/O在很短的时间就可以完成,而 CPU 还有许多运算要处理,CPU Loading 很高。

计算密集型 (CPU-bound) 
在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中

绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound的程序。
It is because the performance characteristic of most protocol codec implementations is CPU-bound, which is the same with I/O processor threads.

根据以上分析,可以认为通常情况下,大部分程序针对某个特定的性能metric而言
都可分为CPU bound 和 I/O bound两类。
CPU bound的程序一般而言CPU占用率相当高。这可能是因为任务本身不太需要访问I/O设备,也可能是因为程序是多线程实现因此屏蔽掉了等待I/O的时间。
而I/O bound的程序一般在达到性能极限时,CPU占用率仍然较低。这可能是因为任务本身需要大量I/O操作,而pipeline做得不是很好,没有充分利用处理器能力;还可能是因为数据局部性不是很好,导致较多page error,结果产生了大量disk I/O的开销。
可能性很多,具体情况具体分析吧。

说到如何确定是CPU bound 还是 I/O bound,我一般用top先看达到性能极限时的CPU占用率,然后用sar,iostat等,获得具体的i/o操作或是page error的统计数据,如果还需要更精准的信息,例如确定具体是哪些代码产生了这些开销,则要用到oprofile或vtune了。

通常I/O bound的程序包括web server的静态页面访问,或者是基于数据库的一些应用等。
而大量计算型的应用都属于CPU bound吧。

最后聊一下如果在一个系统里CPU bound的程序和I/O bound的程序一起run会怎么样?
应该是CPU bound的程序对CPU的占用率会非常不公平地接近100%吧。因为I/O bound的程序可能一个时间片还没用完就block了,放弃CPU了。而CPU bound的程序因此而得到了很多调度机会并且每次都能把CPU run完。故在这样的系统里要给I/O bound的程序更高的优先级使其能被调度得更多些。

转载于:https://my.oschina.net/wangande2014/blog/673898

CPU-bound(计算密集型) 和I/O bound(I/O密集型)相关推荐

  1. 有bug!PyTorch在AMD CPU的计算机上卡死了

    视学算法报道 转载自:机器之心 编辑:小舟.陈萍 AMD,No?PyTorch在AMD CPU的机器上出现死锁了. PyTorch 作为机器学习中广泛使用的开源框架,具有速度快.效率高等特点.而近年来 ...

  2. 用SSE加速CPU蒙皮计算

    http://blog.csdn.net/garuda/article/details/6539271 我们知道现在绝大多数情况下角色动画的蒙皮计算是放在GPU中计算的. 但是仍然有一些特殊的场合我们 ...

  3. linux下如何计算cpu利用率,Linux下的CPU利用率计算原理详解

    我们在搞性能测试的时候,对后台服务器的CPU利用率监控是一个常用的手段.服务器的CPU利用率高,则表明服务器很繁忙.如果前台响应时间越来越大,而后台CPU利用率始终上不去,说明在某个地方有瓶颈了,系统 ...

  4. java 线程 cpu_java程序中线程cpu使用率计算

    最近确实遇到题目上的刚需,也是花了一段时间来思考这个问题. cpu使用率如何计算 计算使用率在上学那会就经常算,不过往往计算的是整个程序执行的时间段,现在突然要实时计算还真有点无奈,时间段如何选择是个 ...

  5. Linux Cpu 利用率计算

    转载:http://blog.chinaunix.net/uid-20057401-id-1979033.html 前几天要写一个取得linux performance的函数.查询了一些资料.发现有几 ...

  6. linux cpu使用率计算

    转自linux 进程的cpu计算,linux环境下cpu利用率的计算_美自的博客-CSDN博客,已经收藏但怕丢失所以直接复制过来 目前linux统计cpu利用率时,所用到的信息,大多数是从 /proc ...

  7. linux内核cpu负载计算,Load和CPU利用率是如何算出来的

    本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/system/how_to_cal ...

  8. 进程CPU使用率计算

    1.查看进程相关信息 cat /proc/进程号/stat 间隔period 秒再次查看进程信息,分别记录两次的utime和stime utime是第14位 stime是第15位 lastutime是 ...

  9. linux内核cpu负载计算,CPU 负载 — The Linux Kernel documentation

    CPU 负载¶ Linux通过``/proc/stat``和``/proc/uptime``导出各种信息,用户空间工具 如top(1)使用这些信息计算系统花费在某个特定状态的平均时间. 例如: $ i ...

最新文章

  1. 边缘检测、霍夫变换、重映射、仿射变换、直方图均衡化
  2. Mac OS X 下连接CMCC无法弹出登陆页面问题
  3. python 类-Python 类class定义 方法与属性教程
  4. 悼念512汶川大地震遇难同胞——老人是真饿了
  5. Python学习笔记:生成器(Generator)
  6. ffmpeg之G711解析成pcm
  7. mysql 5.1 开启慢查询_mysql开启慢查询
  8. 公司如何做好网页设计?
  9. html 二维表_焦虑症自测表,自测你的焦虑程度
  10. vue大文件下载(下载进度展示)
  11. kali下载软件时出现“部分索引文件下载失败,如果忽略他们,那将转而使用旧的索引文件”
  12. 2020.10.3--PS--模糊工具、减淡工具、橡皮擦工具
  13. linux系统中开机自启的三种方式
  14. 自定义安装Office 365(适用于个人版订阅等)
  15. 【阅读笔记】Dynamical time series analytics
  16. Android新荣耀手机角标只增不减
  17. 梦想与行动:仰望星空,脚踏实地
  18. 【SPSS】2.定义变量
  19. 串口调试助手 发送16进制与现实16进制数据
  20. C#操作Excel文件

热门文章

  1. Linux线程——线程同步
  2. fork与操作文件的系统调用问题
  3. android studio for循环快捷键,Android Studio 快捷键 for Mac OS X
  4. Android NDK的文件夹
  5. 5G NR 逻辑信道、传输信道和物理信道
  6. 在 NetBeans IDE 中设计 Swing GUI
  7. JSON javascript 使用
  8. GPS Essentials
  9. Hibernate查询缓存全面分析
  10. 7号团队-团队任务3:每日例会(2018-11-29)