为什么高磁盘I / O会降低系统响应/性能?

我从未公平地认识到为什么高磁盘I / O会大大减少系统。 这对我来说很奇怪,因为我肯定会预料到缓慢移动 - 根据硬/光驱信息影响那些程序,但缓慢移动的影响也会影响RAM。 我在下面描述 IOWAIT

为什么cpu延迟,而不是做各种其他工作? 任何人都可以澄清这个约束,以及为什么它没有在Linux内核中解决? 存在核心周围没有这个麻烦?

[ 注意 ]在这个性能位置实际上有一些进步。 首先,后面的位(在我的实例中为2.6.37)更容易接受。

0
2019-05-13 03:40:00
资源 分享
答案: 2

尽管我认识到这一点,IOwait建议一个程序,而不是cpu,正在等待IO出现。 实际上,Cpus获得的速度远远超过磁盘驱动器,这表明更多的代码肯定会更快地结束,之后磁盘肯定需要读取。 当需要读取的额外数量超过驱动器可以做得足够快的时候,你就会等待cpu正在等待。 确定达到对磁盘的读/写的方法由块调度程序建立,大多数时候当前是CFQ。 如果您正在使用CFQ,并且还需要一个过程来使用更少的总IO时间来提高系统响应能力,则可以使用ionice -c3 <processid>。 这通知系统只是在没有其他任何需要的情况下提供此过程IO。

这个仍然很有趣,也更好地澄清了爱荷华州的麻烦。

0
2019-05-17 14:29:40
资源

操作系统利用虚拟内存来确保可以使用比可用的物理RAM更多的内存。 当内核确定它对物理内存网页的使用效果要好得多时,它的Web内容可能会被“分页”为磁盘上的存储空间。 当在分页时访问这样的数字存储器网页时,它创建了一个 网页错误 并且还从磁盘返回到RAM。

网页错误是对性能的灾难,因为磁盘延迟以纳秒为单位进行测量,而RAM延迟则以毫秒为单位进行测量。 (1毫秒=一百万毫秒!)

内存不仅仅是由客户程序使用,还有内核用于文档系统缓存之类的点。 纵观整个文件系统任务,内核肯定会最近利用信息缓存。 假设很有可能一定会更快地使用相同的信息,因此缓存需要提高I / O性能。

正在使用的物理内存用于文件系统缓存不能用于程序,因此在整个文件系统任务中额外的进程内存肯定会被分页,并且网页错误肯定会增加。 此外,更容易获得磁盘I / O传输容量,以便从磁盘重新定位内存网页。 因此程序可能会延迟。

0
2019-05-17 14:22:33
资源