【问题标题】:Apache HttpPut request is very slow from windows OS来自 Windows 操作系统的 Apache HttpPut 请求非常慢
【发布时间】:2013-12-11 22:28:35
【问题描述】:

我正在使用 Apache DefaultHttpClient 和 HttpPut 使用 REST API 进行文件上传。从 Windows 运行时非常慢,它发送 240 kb/seconds 。但是当我从 MAC 运行相同的文件时,它会发送 950 kb/秒

我对 windows 和 Mac OS 没有任何明确的条件。

谁能帮我解决这个问题。

我的代码:

HttpPut putRequest = new HttpPut("http://my.localhost.com:8888");
FileEntity reqEntity = new FileEntity("c:/test/test.zip","text/plain");
putRequest.setEntity(reqEntity);
putRequest.addHeader("X-Auth-Token",strToken);
httpResponse = client.execute(putRequest);
mResponseCode = httpResponse.getStatusLine().getStatusCode();

【问题讨论】:

  • 有人知道解决办法吗?
  • 您是否尝试过从全新安装进行验证?

标签: java windows rest httpclient


【解决方案1】:

Java 是 Write once, run anywhere (WORA)。因此,Windows 机器上的 HTTP 连接比 Mac 机器慢的原因与 Java 无关。

可能有几个 Windows 机器问题会减慢上传速度。我建议您在elevated 命令提示符下按顺序运行以下命令。

要禁用接收端缩放:

netsh interface tcp set global rss=disabled

禁用 TCP/IP 自动调整:

netsh interface tcp set global autotuninglevel=disabled

禁用所有任务卸载:

netsh int ip set global taskoffload=disabled

有关上述命令的更多详细信息可以找到here

如果问题仍然存在,那么您应该

  1. 重新安装网络驱动程序进行测试。
  2. 通过网络启动到安全模式以检查结果。如果运行正常,请查看Clean Boot 中的结果以检查是哪个第三方工具对此有影响。

希希尔

【讨论】:

    【解决方案2】:

    您是否在 Windows 机器上运行了防病毒应用程序?试试先禁用if,看看有没有区别。

    【讨论】:

    • 确实如此。
    【解决方案3】:

    我会试试这个命令。

    netsh int tcp set global autotuninglevel=disabled
    

    如果没有影响,只需重新启用它

    netsh int tcp set global autotuninglevel=enabled
    

    自动调整有时会导致 Windows 上的 TCP 出现问题(坦率地说,我不知道它到底做了什么)但它在过去给我带来了一些类似的问题,所以也许值得一试。老实说,这可能是很多事情。

    更改后必须重新启动。

    【讨论】:

    • 如果你鼓励某人执行一些 shell 代码,你最好解释一下它在做什么。
    • 是的,当然,当我在这里抱歉时,我往往会忘记我还在interwebz。 aip.im/2012/10/how-to-disable-receive-window-auto-tuning-level 这是我在 5 分钟内能找到的最清晰的描述。至于我自己,我确实在我的个人计算机上运行了这个,因为 tomshardware 上的一个随机人告诉我它可能会工作。它确实做到了,所以随心所欲。
    • 在这里,我在 microsoft 上找到了一个支持页面,描述得更好(而且它也比我链接的上一个博客更官方;)):support.microsoft.com/kb/947239
    【解决方案4】:

    我认为您的问题与网卡的驱动程序有关,而不是 Java。

    转到开始->控制面板->设备管理器->网络适配器->您的网卡,右键单击然后选择属性。

    转到高级选项卡。

    使用特定于您的 NIC 的设置,因此我们无法真正帮助您使用确切的设置。您可能有一个可以禁用的称为“大型发送卸载 (IPv4)”的功能。

    在这里看到:Slow upload speeds on Windows 7

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 2016-01-21
      • 2016-10-09
      • 2011-01-15
      • 2020-04-17
      • 2011-03-09
      • 2020-01-17
      • 2018-02-27
      • 2017-02-14
      相关资源
      最近更新 更多