试图理解为什么通过网络释放文件比Samba慢得多

时间:2015-04-23 15:42:25

标签: windows fread samba nfs fseek

我们有一个程序从Linux文件服务器上托管的三个文件构建一个3d模型。基本上是x.bin,y.bin和z.bin。它一次构建一个z级别的模型,并为每个" slice"读取每个文件。

在运行该程序的Linux机器上,第一个切片大约需要45秒,然后每个"切片大约需要2秒钟#34;之后。

在Windows上,完全相同的程序执行完全相同的操作,运行完全相同的脚本和代码,第一个切片需要5分钟,然后每个切片大约需要一分半钟。

Reading file over network slow due to extra reads

这个帖子似乎有一个类似问题的人,但事实是我仍然不清楚NFS如何更快,以及我如何建议改变实际的开发人员如何提高性能。代码与操作系统无关,我相信它只是使用C&f的fread,fseek等来通过网络读取文件信息。

NFS如何传输/读取数据,它比samba快60倍? 如何在samba上获得该性能?

1 个答案:

答案 0 :(得分:0)

我不是100%肯定,因为我对samba知之甚少,但我的猜测是nfs支持fseek,因此可以定位在下一个拼接上并返回该数据。虽然samba可能没有并且必须从服务器返回完整文件并丢弃“未使用”的内容。

顺便说一句,它不是你正在运行的完全相同的程序,你可能正确地重新编译它们?因此,它已被转码为许多不同的系统调用,每个平台都有不同的优点和缺点......