我编写了一个程序,使用 xcopy 通过我们的内部网传输文件(通常在 1KB 到 2MB 之间)。通常,我将文件从主机(Windows 7 x64)复制到运行 Windows Server 2008 的 VMWare 虚拟机(如果需要的话,VM 在我的主机上运行)。
在 Windows XP 上,文件传输通常只需要几秒钟即可完成。但在我的 Windows 7 机器上,第一个文件(1.5 MB)的传输大约需要 1.5 分钟才能完成。无论我使用 xcopy、robocopy 还是以编程方式使用 File.Copy(),情况都是如此。我注意到,如果我使用 File.Copy,第一次传输非常慢,而后续传输要快得多。
有什么线索可以让我加快这个过程吗?Windows 7(或 Server 2008)中是否有我可以尝试的设置?
答案1
我在另一个板上找到了一个很好的线索(http://social.technet.microsoft.com/Forums/en/w7itpronetworking/thread/c30f6649-a0d9-4f5e-8671-904a8f5469bb)。由于这个问题有很多线索都不起作用,所以我想交叉发布一个对我有用的解决方案。
具体来说,我的问题是文件从 Windows 7 传输到 XP 很慢,从任务管理器中的网络利用率来看,大约为 1%。从 XP 传输到 Windows 7 通常使用 80-99% 的网络带宽。无论传输是“推送”还是“拉取”,都会达到这些结果。
对我有用的方法:我进入局域网属性,配置,高级选项卡,禁用 Large Send Offload v2。禁用自动调谐、RSS、将速度和双工设置为特定值、从家庭组中删除的建议毫无作用。最终,在我的 Dell XPS 8100 Windows 7 Pro 64 位工作站上起作用的设置如下:
ARP 卸载 - 启用
Ethernet@WireSpeed - 启用
流量控制 - 自动
中断调制 - 启用
IPv4 校验和卸载 - Rx & Tx 启用
大量发送卸载 (IPv4) - 启用
大型发送卸载 v2 (IPv4) - 禁用
大型发送卸载 v2 (IPv6) - 禁用
网络地址 - 不存在(单选按钮)
NS 卸载 - 启用
优先级和 VLAN - 优先级和 VLAN 已启用
接收方缩放 - 启用
RSS 队列 - RSS 4 队列
速度和双工 - 自动
TCP 和 UDP 校验和卸载 (IPv4) - Rx 和 Tx 已启用
TCP 和 UDP 校验和卸载 (IPv6) - Rx 和 Tx 已启用
VLAN ID - 0 唤醒功能 -
两者均支持 WOL 速度 - 公布的最低速度
希望这对其他人有帮助。
答案2
答案3
这种缓慢通常是由行为不当或配置错误的网络接口引起的。如果网络接口和交换机之间的自动协商不能正常工作(通常情况如此),网络接口将使用错误的双工设置。不知何故,它允许网络流量流动,但速度非常慢。检查 NIC 配置和网络端口配置,并确保它们同步。
答案4
对我来说,问题在于分段卸载。
这里的解决方案对我有用...(我知道文章中提到的是 Virtual Server 2005 ;但这为我在 Win7 上的 Virtual PC 中解决了这个问题) http://support.microsoft.com/kb/888750
基本上在主机上:
- 运行注册表编辑器 (regedit.exe) 并选择以下项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- 创建名为 DisableTaskOffload 的新 DWORD 值并将其值设置为 1。
- 重新启动主机。