【发布时间】:2022-02-21 19:04:07
【问题描述】:
我的传奇故事:
我在 CentOS 7.4 系统上运行 Artifactory Pro 5.8.4,该系统使用 Artifactory 的内置 Nginx 服务作为反向代理。大多数情况下,在下载大型对象期间,连接失败。此外,在失败的连接中传输的最后几千字节的数据似乎是垃圾。结果,该文件在恢复时在中间某处有一个无效的部分。 失败时的 Nginx 日志提供以下错误消息:
2018/01/22 23:26:32 [错误] 884#0: *48048865 readv() 在读取上游时失败(104:对等方重置连接),客户端:12.2.178.130,服务器:~(?. +).artifactory.common.mycoolco.com, request: "GET /controller/release/20171218-2119-2aa9f0e8c32bf3f08dd96a97127204d1f400f895fa2e67100a3830861c0becb0bfae28244c058510c8312e98378c0b77251b4bb7926ceae2d465ce2d533b88dc HTTP/1.1", upstream: "http://127.0.0.1:8081/artifactory/controller/release/20171218-2119-2aa9f0e8c32bf3f08dd96a97127204d1f400f895fa2e67100a3830861c0becb0bfae28244c058510c8312e98378c0b77251b4bb7926ceae2d465ce2d533b88dc", host: "artifactory.common.mycoolco.com"
Artifactory 日志通常(但并非总是)有如下所示的错误:
2018-01-22 23:14:20,106 [http-nio-8081-exec-87] [WARN] (o.a.r.ArtifactoryResponseBase:137) - 客户端关闭请求 499:java.net.SocketTimeoutException
如有任何进一步的诊断建议,我们将不胜感激。
这不会影响任何明显的变化: 作为后续,我将通过编辑 nginx.conf 文件 (/etc/opt/rh/rh-nginx18/nginx/nginx .conf) 包含设置“worker_processes 2”(当前为 1),将 worker 连接从 1024 增加到 2048,并将 keepalive_timeout 从 65 更改为 130。
我们在 AWS 中托管了一个 Artifactory 实例,没有其他代理或负载均衡器;只有一个实例和一个指向私有 IP 地址的路由 53 条目。我们看到基线 CPU 使用率为 10%,每 15 分钟达到 100%……显然来自 java 进程。 java -version: openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)。现在在 artifactory.version: 5.8.4
> --2018-03-08 22:09:42-- https://artifactory.common.mycoolco.com/controller/pre-release/20180308-2216-023a0b8309af8889
Resolving artifactory.common.mycoolco.com (artifactory.common.mycoolco.com)... 55.111.66.99
Connecting to artifactory.common.mycoolco.com (artifactory.common.mycoolco.com)|55.111.66.99|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1241911191 (1.2G) [application/octet-stream]
Saving to: ‘20180308-2216-023a0b8309af8889’
20180308-2216-c3499ea023a0b8309 86%[=============================================> ] 1.00G 568KB/s in 1m 31s
2018-03-08 22:30:14 (857 KB/s) - Connection closed at byte 1079774172. Retrying.
--2018-03-08 22:30:15-- (try: 2) https://artifactory.common.mycoolco.com/controller-os/pre-release/20180308-2216-023a0b8309af8889
Connecting to artifactory.common.mycoolco.com (artifactory.common.mycoolco.com)|55.111.66.99|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1241911191 (1.2G), 162137019 (155M) remaining [application/octet-stream]
Saving to: ‘20180308-2216-023a0b8309af8889’
20180308-2216-c3499ea023a0b8309 100%[++++++++++++++++++++++++++++++++++++++++++++++=======>] 1.16G 1.08MB/s in 0m 22s
2018-03-08 22:32:38 (1.09 MB/s) - ‘20180308-2216-023a0b8309af8889’ saved [1241911191/1241911191]
【问题讨论】:
-
您是从本地存储库还是远程存储库下载文件?
-
远程。我们在 AWS 中托管我们的 Artifactory 实例,并从多个远程位置进行访问。我们的 Artifactory 实例已经完美运行了一年多一点(自 2016 年 8 月以来),直到 1 月中旬出现此问题。
-
抱歉,我误解了您的问题。这是一个本地仓库。
-
@user5905820 在 AWS 上安装的 Artifactory 和客户端之间是否有任何类型的代理/防火墙/负载均衡器?由于错误,看起来中间的某些东西决定切断通信。你看到的垃圾可能是这个工具产生的(可能是错误信息?)
-
@Dror-Bereznitsky Artifactory 似乎安装了 nginx,但我没有看到任何需要调整的设置。我们在 AWS 中托管了一个 Artifactory 实例,没有其他代理或负载均衡器;只是一个简单的指向私有 IP 地址的路由 53 条目。我们看到基线 CPU 使用率为 10%,每 15 分钟达到 100%……显然来自 java 进程。 java -version: openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)。现在在 artifactory.version: 5.8.4
标签: wget artifactory large-files