问题描述
我正在尝试了解在磁盘IO使用非常繁重的系统上的性能影响。假设系统是基于Linux的。
设置
假设我有三个进程 A , B 和 C 在具有单个磁盘的Linux OS上运行。
进程A 只是将数据写入磁盘。为了进行此思想实验,进程A是一个使用posix max_conections_per_hour
和open
系统调用的c程序。考虑到此过程对磁盘的写入过多,导致大量磁盘使用。
进程B 仅对某些Web服务器进行套接字调用,例如获取google.com的内容。此过程涉及的一些系统调用是write
,socket
和connect
(请注意,write
用于套接字文件描述符,而不是磁盘上的物理文件)。
进程C 使用pthread系统调用将两个线程锁定在同一个互斥锁上。
关于磁盘IO性能影响的资源争用
鉴于进程 A 正在执行大量的IO,对进程 B 和 C 的性能会有什么影响?
与未承受大量IO负载的系统相比,进程B 是否需要更长的时间建立套接字连接并执行与套接字相关的系统调用?
与没有IO负载相比,当系统处于高IO负载时,进程 C 中的线程是否开始花费更长的时间来获取互斥锁?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)