我有一系列可执行文件在群集上运行,在执行启动时读取一些小配置文件,然后执行大量处理几个小时,然后写出一些数据并出口。我们的系统管理员试图告诉我,我们的文件服务器真的很慢,因为他的分析显示,群集节点在ELF可执行文件中使用NFS磁盘I/O读取的所有时间都已花费很长时间(注:我们的可执行文件只有几MB大小)。这听起来不太合适,因为我的印象是动态链接器在运行时将整个可执行文件加载到内存中,然后运行内存不足。我知道内核在运行时会将可打开的文件描述符留给可执行文件,但我并不认为它一直在读取它。ELF执行期间的Linux内存/磁盘行为
我的问题是,我的理解如何加载可执行文件有缺陷?我发现很难相信内核会不停地对可执行文件进行文件读取以获取指令,因为这将非常缓慢(即使是缓存),因为分支预测几乎不可靠,所以您会花费永远阅读可执行文件磁盘如果你的二进制文件频繁跳转。