gpt4 book ai didi

tomcat - 为什么我的 Artifactory 和文件下载卡在 VPN 上?

转载 作者:行者123 更新时间:2023-11-28 22:13:57 25 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题,我不确定发生了什么。我尝试了很多排列,但我无法解决这个问题。任何见解将不胜感激。这是我的环境:

我在只能通过 Cisco VPN 访问的暂存区中设置了一个文件库和一个 Artifactory 存储库。我不需要两个缓存,但我已经尝试过尝试解决问题。

我使用 gradle 构建我的软件,但这似乎不是问题所在。当我的项目构建时,它会愉快地下载 POM 和 JAR 很长一段时间。然而,每次它都会“卡在” jar 上。对于下载的特定本地快照,我可以运行构建 N 次,它会卡在同一个位置。如果我删除我的本地缓存,它可能会卡在不同的 jar 上。

VPN 传输速率不是很好 (100-200K/s),就在它挂起之前,它会显着减慢,一直到 0。此外,如果我在暂存区服务器中构建,传输会超过10G 网络一切正常。

我已经使用 wget 下载 jar,输出通常如下所示:

/tmp > wget -vS http://git-jenkins01.aus.sf:8082/artifactory/ecomm-snapshot-plus-remote/org/codehaus/groovy/groovy/1.8.6/groovy-1.8.6.jar
--2012-10-11 09:51:41-- http://git-jenkins01.aus.sf:8082/artifactory/ecomm-snapshot-plus-remote/org/codehaus/groovy/groovy/1.8.6/groovy-1.8.6.jar
Resolving git-jenkins01.aus.sf (git-jenkins01.aus.sf)... 10.57.10.226
Connecting to git-jenkins01.aus.sf (git-jenkins01.aus.sf)|10.57.10.226|:8082... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Server: Artifactory/2.6.4
X-Artifactory-Id: 583c10bfdbd326ba:71d02e01:13a5059d090:-8000
Last-Modified: Thu, 09 Feb 2012 17:57:32 GMT
ETag: 553ca93e0407c94c89b058c482a404427ac7fc72
X-Checksum-Sha1: 553ca93e0407c94c89b058c482a404427ac7fc72
X-Checksum-Md5: e7ddf15d2f343537549dbbfd860c5f5b
Content-Disposition: attachment; filename=groovy-1.8.6.jar
X-Artifactory-Filename: groovy-1.8.6.jar
Content-Type: application/java-archive
Content-Length: 5546084
Date: Thu, 11 Oct 2012 15:51:47 GMT
Length: 5546084 (5.3M) [application/java-archive]
Saving to: `groovy-1.8.6.jar.7'

95% [======================================================================================================================================> ] 5,278,650 --.-K/s eta 3s

它总是在 ~90% 或更多时停止,但它不会完成。日志没有给出任何错误指示。我已经尝试了 tomcat 6、tomcat 7、jetty、java 6、java 7、artifactory 服务器中的 squid 代理,试图将其诱骗到本地下载。

我检查了 Charles 的流量并查看了日志,据我所知,服务器认为它发送了所有数据并且客户端卡住了等待最后几个字节。我完全没有想法。有什么想法吗?

最佳答案

我看到这种情况发生是因为巨型数据包被转换为标准 TCP/IP 数据包。发生的事情是 Tomcat 默认发送大的巨型数据包(缓冲区大小 -MTU- 为 9000 字节),由于网络不支持巨型数据包,网络路由器会将其切成较小的数据包。因此,在某些时候,Tomcat 发送“数据包结束” block ,该 block 在所有其他子数据包到达“之前”收到。结论,它在接收到所有数据之前挂起或断开连接。

解决方法是将 tomcat server.xml 中的缓冲区大小更改为 1500 左右,或者强制服务器的 TCP/IP 卡配置为 1500 MTU(对于 1G 本地网络来说很烦人)。

希望这对您有所帮助。

关于tomcat - 为什么我的 Artifactory 和文件下载卡在 VPN 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12843894/

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