我有一个大型文件服务器计算机,其中包含我通常以块的形式访问的数TB的图像数据。我想知道我是否有什么特别的东西可以提示操作系统应该将一组特定文件预先加载到内存中,以便在文件共享加载文件时加快文件子集的访问时间。
在开始访问它之前,我可以提供包含构成给定块的所有文件的父目录。
首先想到的是简单地编写一个服务,它将遍历指定路径中的文件,将它们加载到进程内存中,然后释放内存,希望操作系统文件系统缓存能够保留它们,但是我想知道是否有更明确的方法来做到这一点。
如果我可以重新使用现有的文件共享访问范例而不是要求访问这些文件来通过内存缓存层,那么可以节省大量的工作。
有问题的文件几乎总是以只读的方式访问。
我正在使用Windows Server 2003/2008
答案 0 :(得分:0)
有两种方法可供考虑:
1)将服务器设置为针对文件服务进行优化。这曾经是文件和文件的属性。打印机共享,但似乎已在Windows 2008中消失。这是通过注册表设置的:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory 管理\ LargeSystemCache = 1
HKLM \系统\ CurrentControlSet \服务\ LanmanServer \参数\大小= 3
http://technet.microsoft.com/en-us/library/cc784562.aspx作为参考。
2)确保两个端点都是Windows 2008 / Windows 2008或Windows 2008 / Vista。 SMB 2.0以及IP堆栈都有显着的性能改进,可以大大提高性能。由于成本,组织限制或采购提前期,这可能不是一种选择,但我想我会提到它。
http://technet.microsoft.com/en-us/library/bb726965.aspx作为参考。