做网站具体步骤,h5响应式网站模板,国际人才网招聘网,网站收费吗在linux系统#xff0c;使用top命令时#xff0c;可以看到cpu使用统计情况#xff0c;有时我们会注意到iowait这一项非常高。我们直到#xff0c;在cpu运行进程、线程时#xff0c;遇到IO操作#xff0c;因为IO读写通常比较慢#xff0c;CPU通常可以阻塞线程#xff0c…在linux系统使用top命令时可以看到cpu使用统计情况有时我们会注意到iowait这一项非常高。我们直到在cpu运行进程、线程时遇到IO操作因为IO读写通常比较慢CPU通常可以阻塞线程转去执行其他线程做其他事情。等IO完成之后通过中断再通知CPU继续执行之前的线程。
那么问题来了既然在IO时, CPU会转去做其他事情那为什么top命令会有时会显示iowait高呢IO不是基本不怎么消耗CPU么IO发生时CPU不是可以转去做其他事情么iowait是表示CPU用于等待IO操作的时间么
带着这些疑问我们来看一下iowait%究竟是怎么算出来的。 iowait%表示 1. 当前系统存在IO2. 并且CPU没有其他可以运行的进程/线程也就是说CPU处于IDLE状态所占用的时间比例。
举个例子当服务器要访问网络文件系统比如storage server通过NFS方式让客户端访问由于网络的问题或者远端server性能问题导致响应慢而当前服务器又有大量进程、线程要访问这个远端文件系统当这些进程、线程在某个时刻都处于等待IO的状态这是这个CPU时间片就会被统计到iowait中。假设当前server中只有一个CPU一个内核并且存在一个纯计算的进程需要占用大量CPU而其他很多进程都处于IO wait状态那用top命令看iowait%可能也不多。但是这时不能断定IO就没有问题需要结合其他的命令比如iostat以及ps命令看一下文件系统繁忙率以及是否有大量进程长时间处于iowait状态。具体可以参考下边文档解释的很详细。
理解iowait - 简书