Rom*_*šil 11 python upload curl tcp amazon-s3
我使用pycurl作为boto
Python库的后端.它非常快速且功能多样,但我遇到的问题是上传大文件经常在连接重置时失败.当我使用普通boto
平原时httplib
,它更可靠.
我使用Wireshark发现的是,经过一段时间(或有时很快),我的机器停止从S3接收ACK,因此它重置连接.它几乎似乎pycurl
是如此之快以至于扼杀了连接.如果我限制上传(我使用多接口)或使用较慢的互联网连接,上传运行正常.
我仍然想知道我可能做错了什么.
我还尝试使用.NET S3 SDK上传.它慢了3倍,但成功了.此外,它全部在Windows 7上,同一网络上的OS X机器再次上传速度慢得多,但可靠.
既然您提到您在 Windows 7 上遇到了该问题,您能否以管理员身份运行命令提示符并发布结果netsh int tcp show global
?您应该看到类似以下内容:
TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State : enabled
Chimney Offload State : automatic
NetDMA State : enabled
Direct Cache Acess (DCA) : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : none
ECN Capability : disabled
RFC 1323 Timestamps : disabled
Run Code Online (Sandbox Code Playgroud)
我建议您将结果复制/粘贴到 .txt 文件中以记下当前设置。您感兴趣的设置是 Chimney Offload、Receive-Side Scaling (RSS) 和 NetDMA。这些功能均尝试从 NIC 或 CPU 卸载处理负载,有时可能会导致出现与您所描述的症状类似的问题。
在搞乱 RSS 或 NetDMA 之前,我会尝试通过netsh int tcp set global chimney=disabled
在Device Manager > Network Adapters > Advanced tab
.
如果这不能解决您的问题,您可能需要尝试其他两个选项。这是一篇Microsoft 知识库文章,其中包含有关修改所有内容的详细信息。
归档时间: |
|
查看次数: |
425 次 |
最近记录: |