当前位置: 首页 > news >正文

郑州大型网站建设价格阿里云网站建设与发布题库

郑州大型网站建设价格,阿里云网站建设与发布题库,千图网素材下载网站,公司单位名称大全最近在做连续数据流的缓冲系统#xff0c;C语言代码实现后#xff0c;粗略测试了下#xff0c;功能上应该没有问题。那么#xff0c;接下来就该测试性能了。输入 top 命令#xff0c;的确可以看到一系列 cpu 使用率#xff0c;其中一个值得注意的子项就是 io 使用率了C语言代码实现后粗略测试了下功能上应该没有问题。那么接下来就该测试性能了。输入 top 命令的确可以看到一系列 cpu 使用率其中一个值得注意的子项就是 io 使用率了如下图top 命令上图中 io 前面的数字是什么意思呢是指 CPU 有 63% 的时间花费在 io 上了吗在 Linux 中输入 man 命令查看相关手册发现 io(wait) 被解释为“等待 I/O 完成的时间”。“等待 I/O 完成的时间”如果按照手册对 iowait 字面上的解释是很容易陷入误区的。因为就上例而言似乎 CPU 有 63% 的时间消耗在等待 I/O 操作完成导致 CPU 的性能白白浪费这么多。其实不是的Linux 是一个成熟的操作系统它才不会让 CPU 宝贵的性能白白浪费在耗时的 I/O 等待上实际上如果当前系统还有其他任务需要使用 CPULinux 会将等待 I/O 完成的任务暂时挂起将 CPU 使用权暂时交给有需要的任务。那么 iowait 到底是什么意思呢有人认为iowait 只是 CPU 空闲(idle)时间的一个子集也就是说 iowait 其实可以归类到 idle 状态本质上表示 CPU 是空闲的只不过 iowait 表示任务中有等待 I/O 操作完成的时间。iowait 到底是什么意思呢这样认为有一定的道理毕竟哪怕 iowait 的数值是 100%也仅仅是说明是 CPU 把时间都花在“等待”上了这样的情况一般只有在当前系统没有其他任务需要使用 CPU 时才会发生。因为一旦有其他任务需要使用 CPULinux 内核会立刻将 CPU 提供给该任务使用CPU 时间就不再全部是“等待I/O”花费的了(不再是 100% io 了)。不过读者应该明白的是“idle”是 CPU 的状态而 “iowait”则是任务的状态。对于单核 CPU 来说同时只能有一个任务运行上述说法可以认为是准确的。但是对于多核 CPU 来说情况就有些不同了。例如某个系统拥有 4 个 CPU有一个 I/O 超密集型任务正在运行那么iowait 会是 100% 呢还是 25% 呢换句话说iowait 会是在其中一个 CPU 上 100%其他CPU 上 0% 呢还是会在 4 个 CPU 上平均 25 % 呢简单做一个实验简单做一个实验就可以了。我们使用 Linux 中的 dd 命令模拟高密集 I/O 任务这一过程可以通过输入以下命令实现dd if/dev/sda of/dev/null bs1MB这条命令可能需要 root 权限/dev/sda 是我的磁盘读者可能需要换成自己的节点名。此时通过 top 命令可以查看到下面这样的结果top 命令图中的 “wa”表示 I/O 等待时间(它和 io、iowait 是一个意思名字不同而已)。可见Linux 此时采用单个 CPU 处理 I/O 任务。如果读者细心的话应该能够发现I/O 任务只是偶尔的切换到其他 CPU 上运行这是为了保证 CPU 缓冲的命中率Linux 内核尽量让任务在单个 CPU 中运行。在其他一些系统中I/O 任务可能会在各个CPU中频繁的切换此时会产生下面这样的结果I/O 任务可能会在各个CPU中频繁的切换假设 dd 命令是系统中执行 I/O 的唯一任务那么在同一时刻最多只会有一个 CPU 处理 I/O 等待任务。因此实际上 34.820.926.73.786.1接近但低于100。进一步实验为了让实验更可重现我们可以使用 taskset 命令为任务指定 CPUtaskset 1 dd if/dev/sda of/dev/null bs1MB应该注意taskset 后的数字 1 并不是 CPU 的编号而是一种掩码。此时通过 top 命令查看 CPU 使用请看应该能够发现 CPU0 的 wa 项接近 100这说明 CPU0 几乎所有的时间都花在等待 I/O 操作完成上。那么是不是此时 CPU 就没有精力处理其他任务了呢我们再输入下面这条命令taskset 1 sh -c while true; do true; done上面这条命令是在相同的 CPU 上执行一个死循环用于模拟计算密集型任务它是不是就没有机会执行了呢输入 top 命令得到如下结果CPU0 的 wa 降低为 0 了CPU0 的 wa 降低为 0 了与此同时用户态和系统态的 CPU 时间接近 100% 了。这是意料之中的因为本质上 CPU 是空闲的Linux 内核当然可以把 CPU 交给第二个任务使用。原本用于等待 I/O 完成的 CPU 时间现在用于处理第二个任务了。此时通过 top 命令查看 wa自然得到接近 0 的结果。小结现在基本就清楚 top 命令中 % io 的含义了对于指定的 CPU 来说iowait 表示在此时间内CPU 其实是空闲的不过 CPU 并不是严格意义上的“空闲”毕竟它还需要等待 I/O 操作完成。对于产生 I/O 操作请求的线程来说它会阻塞等待 I/O 操作完成。理解这一点对于我们开发I/O操作密集的C语言程序是非常有帮助的。点个赞再走吧欢迎在评论区一起讨论质疑。文章都是手打原创每天最浅显的介绍C语言、linux等嵌入式开发喜欢我的文章就关注一波吧可以看到最新更新和之前的文章哦(最近发现有些帐号搬运我的文章并且标上原创标签有些可耻请注明出处)。
http://www.pierceye.com/news/550688/

相关文章:

  • 在线网站建设课程济宁网站建设 企诺
  • 北京专业网站制作技术手机网站建好怎么发布
  • 谷歌网站建站wordpress 页面和文章
  • 网站建设基本目标如何建设 linux 网站
  • 电子商务网站开发 php汕头 网站建设
  • 郑州做网站的论坛山西利用模板建站
  • 网站引流.定期报告系统下载官网
  • 北京网站排名珠海 网页设计
  • 长春火车站防疫政策wordpress调用图片代码
  • 建设论坛网站自学江苏中小企业网站建设
  • 东莞网站建设效果好网站建设制作设计
  • 成华区建设局门户网站wordpress.fr
  • 河北制作网站模板建站公司网站开发流程的认识
  • 天津网站建设有哪些做网站的公司为什么人少了
  • 提供中山精品网站建设建俄语网站哪个公司最好
  • 建设银联官方网站怎样在网站做宣传
  • 网站开发支付宝二维码支付建设网站装配式建筑楼房
  • 湖北系统建站怎么用做网站买一个域名就够了吗
  • 如何做问卷调查网站济南网络公司
  • 纯js做网站Wordpress税
  • 建云科技网站首页阿里云 wordpress 安装
  • 浙江省建设工程协会网站动漫网站的设计与实现
  • wordpress能导出网站吗企业内部网站开发
  • 景观石网站建设方案一 网站开发背景
  • 开发app的平台外贸seo建站
  • 网站界面设计实训报告深圳设计公司办公室
  • 京东网站的公司地址别人网站建设多少钱
  • 如何加快网站打开速度wordpress注册怎样通过邮箱验证码
  • 有关图书网站建设策划书电脑公司网站系统源码
  • 西班牙网站后缀360收录提交入口网址