微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

networking文件系统预取? 或者:互联网文件系统是否优化以减less往返

以下面的代码snippit:

f = open("/mnt/remoteserver/bar/foo.bin",O_RDONNLY); while (true) { byteseread = read(f,buffer,1000); if (bytesread > 0) ProcessBytes(buffer,bytesread); else break; }

如果上面的例子,我们说远程文件,foo.bin是1MB,以前从来没有被客户访问过。 所以,大约有1000个调用来“读取”来获取整个文件

此外,让我们说客户端上安装目录的服务器是通过互联网,而不是本地。 客户端带宽快,但延迟时间长。

是否每个“读取”调用都会返回到服务器以请求更多的数据? 或者客户机/服务器协议认识到,远程文件上的后续读取通常是连续的,因此,在应用程序实际进行read()调用之前,后续的块被压下。 因此,随后的读取调用会更快地返回,因为数据是预取和caching的。

对于文件系统,由statvfs()计算的已用空间大于fs中所有文件大小的总和

模拟一个大的文件系统来testing在Windows中testing大内存映射(> 5tb)

使用Linux恢复Windows Spanned disks(LDM)?

jffs2文件系统立即破坏(Magic bitmask 0x1985找不到错误

写在低级访问pendrive

做现代networking文件系统协议(NFS,SMB / Samba,任何其他?)做任何这样的优化。 有networking文件系统协议调整为互联网有这样的优化?

我正在调查一个可能涉及通过互联网实施networking文件系统的个人项目。 令我感到惊讶的是,如果文件I / O的往返次数可以减less,性能可能会更快。

如何find重名的同名文件,但在不同情况下存在于同一目录中的Linux文件

dd中ibs / obs / bs的用途

我怎样才能find文件夹内的所有文件的大小?

如何有效地监视一个目录在Linux上的变化?

如何加快在Linux上阅读固定的一组小文件

这将非常依赖于协议实现。 一般来说,我不认为大多数客户端实现预取,但最精明的存储管理员使用大块(32 + kb见rsize / wsize挂载选项),这有效地导致同样的事情。 网络文件系统通常也会通过系统缓冲区缓存进行缓存,因此您绝对不会将read()调用直接转换为网络IO。

我的建议是将天真地编写程序(或简单的测试用例),并通过nfsstat等读取网络统计信息,然后从那里进行优化。 有太多的变数来以其他方式得到答案。

我不是专家,但从我可以告诉NFS4有更多的广域网优化比旧的协议(nfs2,3,cifs),所以我一定会把它融入到你的组合。 也就是说,大多数远程文件系统协议并不是专为高延迟访问而设计的,这就是为什么我们最终得到像S3这样的系统。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐