gpt4 book ai didi

python - 使用 pycurl 中断的 S3 上传

转载 作者:太空狗 更新时间:2023-10-29 18:09:09 26 4
gpt4 key购买 nike

我正在使用 pycurl 作为 boto Python 库的后端。它非常快速且用途广泛,但我遇到的问题是大文件的上传经常在连接重置时失败。当我将普通 boto 与普通 httplib 一起使用时,它更加可靠。

我在使用 Wireshark 时发现,一段时间后(或者有时很快),我的机器停止接收来自 S3 的 ACK,因此它会重置连接。似乎 pycurl 速度如此之快以至于它阻塞了连接。如果我限制上传(我使用多接口(interface))或使用较慢的互联网连接,上传运行正常。

我仍然想知道我可能做错了什么。

我还尝试使用 .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

我建议您将结果复制/粘贴到 .txt 文件以记录您当前的设置。您感兴趣的设置是 Chimney Offload、Receive-Side Scaling (RSS) 和 NetDMA。这些都是试图从/向 NIC 或 CPU 卸载处理的功能,它们有时会导致出现与您描述的症状类似的问题。

在使用 RSS 或 NetDMA 之前,我会尝试通过运行 netsh int tcp set global chimney=disabled 来禁用 Chimney Offload,并在 Device Manager > Network Adapters > Advanced 选项卡下禁用 TCP offload.

如果这不能解决您的问题,您可能需要尝试其他两个选项。这是一个 Microsoft KB article以及修改所有这些的详细信息。

关于python - 使用 pycurl 中断的 S3 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14699158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com