重磁盘IO是否会导致非磁盘IO线程速度减慢?

重磁盘IO是否会导致非磁盘IO线程速度减慢?,io,operating-system,posix,Io,Operating System,Posix,我试图了解在磁盘IO使用量极高的系统上,性能的影响。假设该系统是基于Linux的 安装程序 假设我有三个进程A、B和C运行在一个linux操作系统上,只有一个磁盘 进程A只是将数据写入磁盘。为了这个思维实验,进程A是一个c程序,它使用posixopen和write系统调用。考虑到这个过程对磁盘写得太多,导致磁盘使用量很重。 进程B仅对某些Web服务器进行套接字调用,例如获取google.com的内容。此过程中涉及的一些系统调用包括socket、connect和write(注意write用于套接字

我试图了解在磁盘IO使用量极高的系统上,性能的影响。假设该系统是基于Linux的

安装程序 假设我有三个进程ABC运行在一个linux操作系统上,只有一个磁盘

进程A只是将数据写入磁盘。为了这个思维实验,进程A是一个c程序,它使用posix
open
write
系统调用。考虑到这个过程对磁盘写得太多,导致磁盘使用量很重。 进程B仅对某些Web服务器进行套接字调用,例如获取google.com的内容。此过程中涉及的一些系统调用包括
socket
connect
write
(注意
write
用于套接字文件描述符,而不是磁盘上的物理文件)

进程C有两个线程使用pthread系统调用在同一个互斥锁上锁定

资源争用对磁盘IO性能的影响 鉴于流程A正在进行非常繁重的IO,那么绩效将对流程BC产生什么影响

与未承受重IO负载的系统相比,进程B进行套接字连接并执行与套接字相关的系统调用是否需要更长的时间


与无IO负载相比,系统在高IO负载下时,进程C中的线程是否会开始花费更长的时间来获取互斥锁?

是的,非常多-tldr,尽管没有有趣的细节。要获得更好的响应,请至少指定实际的“POSIX”操作系统.Linux。如果你有时间提供一些细节,我对细节很感兴趣:我看不出为什么A会显著降低B或C的速度。当然,如果A做了一些特别愚蠢的事情(比如很多微小的
read
write
调用),不必要的系统调用,上下文切换,内核开销会减少其他进程的可用资源。但这是一个真实的场景还是一个假设的场景?如果它是真实的场景,那么如果你想要一个真实的解释,你需要提供所有的细节。甚至可能是一个真实的场景。我有很多IO发生在一个磁盘上,这个磁盘的吞吐量不高,我试图看看这是否导致我有一些真正潜在的/低吞吐量的网络。