cygwin 上的 nfs 服务器运行缓慢

cygwin 上的 nfs 服务器运行缓慢

设置:

我们在 Windows 2008 Server (Xeon 3,2 GHz) 上运行 cygwin nfsd 实例。有几台 Sun Solaris 和 SunOS 机器正在访问共享。

这是导出文件:

/disk3    (rw,all_squash)
/disk2    (rw,all_squash)  

这些路径软链接到相关的 cygdrive/d/path/to/dir 路径。一些文件夹包含多达 10k 个文件。

问题:

ls -la

在太阳盒上安装的文件夹需要 2-3 分钟,并且总体读取性能非常差。

cat filename

以缓慢的速度显示文件,这会影响大量访问这些共享文件的任务的性能。

处理器负载不是问题,nfs 服务器大部分时间处于空闲状态,cygwin 任务的负载从未超过 1%。

答案1

最近有一些工作在加快目录访问速度,这将在 Cygwin 1.7.8 中实现。预计将于 1 月某个时候发布,但您可以尝试最新的快照http://www.cygwin.com/snapshots

此外,您可能希望避免在路径中使用符号链接,因为它们会导致额外的开销。您可以直接在 中挂载相关目录/etc/fstab,如下所示:

c:/path/to/dir /disk3 ntfs binary 0 0

您还可以尝试关闭 POSIX 权限到 Windows ACL 的映射(这意味着权限将被伪造):

c:/path/to/dir /disk3 ntfs binary,noacl 0 0

http://cygwin.com/cygwin-ug-net/using.html#mount-table了解更多信息。

但最终,Cygwin/Windows 并不是一个很好的服务器系统。

答案2

这是很正常的,您正在另一个操作系统上的 Unix 层上运行用户模式 ​​NFS 服务器。

使用 GNU/Linux 服务器会更好。

查看事件查看器是否存在任何权限问题,并相应地设置挂载的权限,例如:

/disk3 (rw,all_squash,anonuid=xxx,anongid=yyy)

相关内容