我使用pycurl作为boto
Python库的后端。这是非常快速和通用的,但我有一个问题,上传大文件往往失败连接重置。当我将普通boto
与普通httplib
一起使用时,它更加可靠。在
我在使用Wireshark时发现,过了一段时间(有时甚至很快),我的机器停止接收来自S3的ack,因此它重置了连接。似乎pycurl
速度太快,以致于阻塞了连接。如果我使用网速慢的上传接口,或者使用网速慢的上传接口。在
我还在想我可能做错了什么。在
我还试着用.NETS3SDK上传。它大约慢了3倍,但成功了。而且,这一切都是在Windows7,OSX机器上,在同一个网络上再次上传速度慢很多,但可靠。在
既然您提到在Windows7上遇到了这个问题,您能否以管理员身份运行命令提示符并发布
netsh int tcp show global
的结果?您应该看到如下所示:我建议您将结果复制/粘贴到.txt文件中,以记录当前设置。您感兴趣的设置是烟囱卸载、接收端缩放(RSS)和NetDMA。这些都是试图将处理从NIC或CPU上卸载的特性,它们有时会导致与您描述的症状类似的问题。在
在搞乱RSS或NetDMA之前,我会尝试通过运行
netsh int tcp set global chimney=disabled
来禁用烟囱卸载,并在Device Manager > Network Adapters > Advanced tab
下禁用TCP卸载。在如果这不能解决您的问题,您可能需要尝试其他两种选择。下面是一个Microsoft KB article,其中包含有关修改所有这些参数的详细信息。在
相关问题 更多 >
编程相关推荐