gpt4 book ai didi

Java UrlConnection 在高负载下触发 "Connection reset"异常。为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:45 24 4
gpt4 key购买 nike

我在 Linux (Ubuntu 10) 64 位服务器上使用 Java 从 Amazon S3 流式传输文件。

我为每个文件使用一个单独的线程,每个文件打开一个 HttpURLConnection,它同时下载和处理每个文件。

在我达到一定数量的流(通常大约 2-300 个并发流)之前,一切都运行良好。在此之后的不规则点,多个(比如 10 个)线程将开始java.net.IOException: Connection reset 错误同时

我正在限制下载速度,远远低于 m1.large 实例的 250mbit/s 限制。所有其他服务器方面的负载也微不足道(例如 CPU、平均负载和内存使用都很好)。

可能是什么原因造成的,或者我该如何追踪?

最佳答案

猜测可能会发生什么并不容易,但这是一些提示,可能有些可能适用于您的上下文:

  • 你能检查你的 shell(linux bash/zsh 或任何其他)看看你是否提高了限制文件描述符数量的标准限制(但也包括套接字),使用 bash shell 的 man ulimit
  • 您是否在 Java 代码中明确关闭了流?不关闭流可能会导致这种聪明的问题
  • 尝试谷歌 Linux TCP 内核调整,看看您的 ubuntu 服务器是否有适合此类负载上下文的堆栈...

HTH杰罗姆

关于Java UrlConnection 在高负载下触发 "Connection reset"异常。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9116977/

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