从客户端上传到服务器很慢,但从客户端下载到服务器很快

从客户端上传到服务器很慢,但从客户端下载到服务器很快

我希望有人能告诉我应该把精力集中在哪里。

我有几个客户端通过 Windows 2008 服务器连接到域。几天前,客户端计算机上存储服务器上数据的应用程序开始严重滞后。

如果我坐在客户端机器前...我得到:

从服务器下载 100+MB

从其他客户端下载 100+MB

上传至服务器的速度为 5MB*

然而...

如果我坐在服务器旁...我得到:

客户端下载量超过 50MB*

50MB 是可以接受的,但 5MB 则不行。在这种情况下,是什么原因导致了速度差异?服务器上有一个 RAID1 配置,因此我预计写入该磁盘阵列的时间会减少。但驱动器的写入速度并不能解释 45MB 的差异,具体取决于传输的发起位置(客户端或服务器)。

如果我将 USB 驱动器插入服务器,共享它,并尝试将文件从客户端复制到该 USB 驱动器(客户端发起的传输),我可以获得稍快的速度,最高可达 30MB(而不是 5MB)。但是,如果在传输过程中,我尝试上传到 RAID 控制的卷,则两次传输(到 USB 驱动器和本地磁盘)的最高速度都在 5MB 左右。

根据戴尔诊断程序,RAID 阵列中的驱动器没有问题。禁用服务器上的防火墙没有帮助。

那么到底是怎么回事呢?可能是交换机过载或出现故障?在服务器上工作时,UI 响应缓慢,但我没有看到任何沉重的内存或 CPU 负载。我唯一感兴趣的是 mmc.exe 每分钟产生的 14 个页面错误。

在此先感谢您提供的任何可以帮助我解决这个问题的提示或建议。

答案1

首先,我会运行 LAN 速度测试。我最喜欢的应用程序是:

TotuSoft 的 LAN 速度测试

并尝试使用和不使用 Windows 缓存进行传输。

我还会尝试其他协议,例如 ftp。这样您就可以更好地了解这是网络问题还是 Windows fs 问题。

(如果服务器正在等待更新,请在开始测试之前安装并重新启动)。

答案2

我假设您使用 CIFS 来完成所有这些操作,但尚未说明。此外,我假设您在客户端上创建 CIFS 共享并连接到该共享,以此作为测试“从客户端到服务器”下载的方法。在考虑网络文件系统性能时,了解使用哪种协议非常重要,这样我们才能知道它在不同环境条件下的表现。

CIFS 具有糟糕的在有损链路上的性能,在最好的情况下绝对不能容忍抖动。如果您在服务器上使用绑定,则必须使用 LACP 或主动备份(或类似方法)作为 LAG 方法,否则可能会引入抖动(使用 CIFS 时,抖动在写入期间的影响大于读取期间的影响)。

考虑到这一点,并且意识到您描述的 CIFS 写入速度始终很差,那么服务器上的通道绑定问题可能是罪魁祸首(如果不是独立的故障交换机)。如果您使用绑定,请确保您使用的模式和算法与 CIFS 配合良好。

既然您说这个问题是最近才出现的,那么很可能是交换机故障(如果没有人更改相关的交换机端设置)。“脏”网络链路会极大地影响交换机上数据拆卸/重组的速度,从而导致潜在的抖动和丢失。

检查交换机上的链路错误计数器(如果可以的话),并检查客户端和服务器 NIC 上的计数器。抖动和丢失将始终被报告(尽管它们不是这个等式中唯一的参与者)。使用 @panos415 建议的 LAN 速度测试来获取更多指标,并可能增加计数器。

相关内容