我在两台 debian 拉伸机之间的 NFS 性能非常差,我找不到解决方案。我在导出文件的服务器端使用 rsync,在客户端使用 tcp,hard,intr,rsize=32768,wsize=32768 作为挂载时的选项。两台服务器都是在 Hyper V 下运行并共享同一内部网络交换机的 VM。
使用大文件时性能是可以接受的,但使用 rsync 时性能非常低。复制 tar 文件(大小 2 GB)需要几秒钟,而在同一目标文件夹中提取相同的 tar 文件需要几分钟。tar 没有任何特殊选项,只是 tar xvf 。
编辑
我正在使用 4 TB 西部数据 WD40EFRX SATA 驱动器。这 4 个驱动器作为物理磁盘直接分配给 Hyper-V VM。这 4 张光盘在 Debian Stretch NFS 服务器中被制成 RAID 5 ext4 文件系统。我使用的测试文件是 40.000 个不同大小的文件,总共增加了 2 GB。(主要是小型文件、图像和文本以及一些 jar 文件)。
两台服务器共享同一个 Hyper-V 外部虚拟交换机,连接到英特尔 I211 千兆网络适配器
从 NFS 客户端到 NFS 服务器的 Ping 示例:
PING xyzserver (192.168.1.49) 56(84) 字节数据。来自 xyzserver (192.168.1.49) 的 64 个字节:icmp_seq=1 ttl=64 时间=41.2 ms
来自 xyzserver (192.168.1.49) 的 64 个字节:icmp_seq=2 ttl=64 时间=5.48 ms
来自 xyzserver (192.168.1.49) 的 64 个字节: icmp_seq=3 ttl=64 time=29.7 ms
来自 xyzserver (192.168.1.49) 的 64 个字节:icmp_seq=4 ttl=64 time=64.2 ms
来自 xyzserver (192.168.1.49) 的 64 个字节:icmp_seq=5 ttl=64 time=43.0 ms
来自 xyzserver (192.168.1.49) 的 64 个字节:icmp_seq=6 ttl=64 time=11.5 ms
来自 xyzserver (192.168.1.49) 的 64 个字节:icmp_seq=7 ttl=64 time=29.4 ms
编辑2
我相信这与 Debian 9 无关。即使是 Debian。也不仅仅是 NFS。我们还使用 Windows 机器和 CIFS 进行了测试,性能非常相似。
使用大文件时的性能很好(特别是使用 NFS),但对于小文件(源代码等),它可能会变得非常慢(甚至低于 1 MB/s)。
关于我做错了什么的任何想法?(老问题)
我们正在考虑不使用 NFS 或 CIFS。
知道我们可以做些什么来获得体面的表现吗?(新问题)
拥有一个快速的 RAID5 磁盘子系统和一个快速的服务器并在同一台服务器上拥有两个虚拟机似乎很荒谬,我们无法找到一种方法来以相当快的速度在共享文件系统中 rsync 文件或 untar 文件。
关于我可以使用什么的任何建议?(硬件软件)
在 Hyper-V 下,CIFS 和 NFS 的性能问题没有解决这些问题。
我们最终决定搬到 PROXMOX,一切都变得更好了。不知道为什么,可能是 Debian 的 Proxmox 虚拟化,因为它也基于 Debian,比 Hyper-V 的效率要高得多,而 Hyper-V 很可能对 Windows 虚拟化更有效?