我有两台连接 10Gbit 以太网的机器。让其中一个是 NFS 服务器,另一个是 NFs 客户端。
通过 TCP 测试网络速度,iperf
显示双向约 9.8 Gbit/s 的吞吐量,因此网络正常。
测试 NFS 服务器的磁盘性能:
dd if=/dev/zero of=/mnt/test/rnd2 count=1000000
Run Code Online (Sandbox Code Playgroud)
结果是 ~150 MBytes/s,因此磁盘可以正常写入。
服务器/etc/exports
是:
/mnt/test 192.168.1.0/24(rw,no_root_squash,insecure,sync,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)
客户端/mnt/test
使用以下选项将此共享安装到本地:
node02:~ # mount | grep nfs
192.168.1.101:/mnt/test on /mnt/test type nfs4 (rw,relatime,sync,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101)
Run Code Online (Sandbox Code Playgroud)
如果我尝试从 NFS 共享在客户端计算机上下载一个大文件 (~5Gb),我会获得~130-140 MBytes/s 的性能,接近服务器的本地磁盘性能,所以它是令人满意的。
但是,当我尝试将大文件上传到 NFS 共享时,上传开始时约为 1.5 Mbytes/s,缓慢增加到 18-20 Mbytes/s 并停止增加。有时,在实际开始上传之前共享“挂起”几分钟,即主机之间的流量接近于零,如果我执行ls /mnt/test
,它在一两分钟内不会返回。然后ls
命令返回并以最初的 1.5Mbit/s 速度开始上传。
当上传速度达到最大值(18-20 Mbytes/s)时,我运行iptraf-ng
并在网络接口上显示约 190 Mbit/s 的流量,因此网络不是这里的瓶颈,以及服务器的 HDD。
我试过的:
1. 在仅与 100Mbit 以太网 NIC …
将通用 Web 应用程序代码共享到多个 Web 服务器的最佳方式是什么?
例如,我有一个包含用 PHP 编写的 Web 应用程序的目录。现在,我有多台机器可以提供相同的内容,每台机器都运行一个网络服务器,使用 TCP/IP 平衡器进行负载平衡。
对于这种情况,我还没有尝试过 NFS。但是根据Slow NFS transfer performance of small files,传输性能会很慢,因为涉及到很多[小]文件。
编辑:我想将所有文件集中存储在一个位置,因此网络服务器将立即读取代码更新。