使用pycurl中断的S3上传

2024-09-30 01:29:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pycurl作为botoPython库的后端。这是非常快速和通用的,但我有一个问题,上传大文件往往失败连接重置。当我将普通boto与普通httplib一起使用时,它更加可靠。在

我在使用Wireshark时发现,过了一段时间(有时甚至很快),我的机器停止接收来自S3的ack,因此它重置了连接。似乎pycurl速度太快,以致于阻塞了连接。如果我使用网速慢的上传接口,或者使用网速慢的上传接口。在

我还在想我可能做错了什么。在

我还试着用.NETS3SDK上传。它大约慢了3倍,但成功了。而且,这一切都是在Windows7,OSX机器上,在同一个网络上再次上传速度慢很多,但可靠。在


Tags: 文件机器s3速度httplibboto重置osx
1条回答
网友
1楼 · 发布于 2024-09-30 01:29:40

既然您提到在Windows7上遇到了这个问题,您能否以管理员身份运行命令提示符并发布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

我建议您将结果复制/粘贴到.txt文件中,以记录当前设置。您感兴趣的设置是烟囱卸载、接收端缩放(RSS)和NetDMA。这些都是试图将处理从NIC或CPU上卸载的特性,它们有时会导致与您描述的症状类似的问题。在

在搞乱RSS或NetDMA之前,我会尝试通过运行netsh int tcp set global chimney=disabled来禁用烟囱卸载,并在Device Manager > Network Adapters > Advanced tab下禁用TCP卸载。在

如果这不能解决您的问题,您可能需要尝试其他两种选择。下面是一个Microsoft KB article,其中包含有关修改所有这些参数的详细信息。在

相关问题 更多 >

    热门问题