gpt4 book ai didi

linux - Linux 如何处理阻塞 I/O 进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:51 27 4
gpt4 key购买 nike

我有一个系统会执行大量阻塞网络调用。基于此,CPU 空闲时间以及整体系统负载相对较高。当我向系统添加更多 CPU 时,空闲时间保持不变,但系统负载下降。为什么会这样?

下面是幕后发生的事情吗?

当调度一个想要阻塞网络 I/O 的进程时,CPU 准备并传播对 I/O 总线的调用,设置中断处理程序,然后切换到另一个进程,因为没有其他事情要做完毕。当 I/O 调用返回时,I/O 子系统引发中断,CPU 返回到原始进程以完成其执行。

因此,CPU 的工作包括与 I/O 子系统的接口(interface)和上下文切换。当有许多进程需要执行此操作时,由于等待其 I/O 和上下文切换的进程,负载会增加。当我向系统添加更多 CPU 时,每个 CPU 的上下文切换更少,因此等待和负载更少。

这是正确的解释吗?如果是,等待其网络 I/O 完成的进程处于哪种状态?这应该是可运行的,以影响系统负载。

最佳答案

一切顺利。平均负载是等待 CPU 时间的进程数; CPU 越多,进程越多地分布在 CPU 上,因此队列的长度越短。这就像收银员的数量如何影响想要结账的顾客队伍一样。

关于linux - Linux 如何处理阻塞 I/O 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48212183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com