我一直在做很多工作,我同时访问30多个进程中的一个文件(通过安装在NFS上的4个节点),并且想知道除了带宽瓶颈之外,是否有一个优势是减少连接打开同一个文件。具体地说...
访问文件的这两种方式是否存在速度差异:
由5个独立进程(仅正在阅读)访问的1个文件
由5个独立进程(仅正在阅读)访问的5个单独文件(原件大小的1/5)
也...
即使磁盘带宽未达到最大限度,是否存在与打开过多文件连接相关的瓶颈?
答案 0 :(得分:2)
多个进程对同一文件的并发访问意味着锁定和序列化操作,至少在某种程度上。在网络文件系统上,可以为任何操作插入重要的延迟。虽然您的带宽使用率并没有那么大,但所涉及的延迟会显着降低性能。
如果您可以避免通过网络同时访问同一文件,那么如果性能很重要,您应该这样做。
顺便说一句,NFS和大多数其他网络文件系统在锁定和并发访问问题上有很长的历史,即使应用程序执行显式锁定 - 通常会导致某种形式的数据损坏。
如果可以,请考虑切换到适当的基于网络的协议,其中多个进程将数据提供给写入输出文件的中央记录/记录服务器,而不涉及NFS或其任何朋友......