欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

nginx 超时问题: upstream timed out (110: Connection timed out) while reading response header from upstream 自己亲自做的 有大用 有大大用 有大大大用

我们可以在nginx的 error.log 里面可以看到

错误内容:upstream timed out (110: Connection timed out) while reading response header from upstream

错误原因

从错误日志我们可以知道,该错误是由于nginx 代理去获取上游服务器的 返回值超时了。那么这个问题是什么导致的:

  1. 该请求获取的数据比较多,后端处理该请求花费的时间较长。

  2. 也可能是代理服务器与上游服务器的网络问题

我们通过定位出错的url,来排查问题,最终确定问题是由于 该请求需要后端处理的时间比较长。
那么解决办法可以是开发人员对该接口进行优化,也可以是我们通过nginx将超时时间设置长些。

错误解决办法

nginx 超时时间设置

官网链接:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout

Syntax:proxy_read_timeout time;
Default:proxy_read_timeout 60s;
Context:http,server,location
Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.

proxy_read_timeout 参数, 该指令是指从上游服务器两次成功的读操作耗时的超时时间,也就意味着从上游服务器成功读操作后,过了60S,没有再从上游服务器成功读操作的话,就会关闭该连接。

默认值是 60s ,我们可以设置为240s,或者300s。来应对上游服务器处理请求慢的问题。

在nginx 的配置文件 在 http,server,location 三个位置任意一个位置
加上

proxy_read_timeout 240s; 
作者:理想三旬
如果觉得文章写得不错,或者帮助到您了,请点个赞,加个关注哦。运维学习交流群:544692191
本文版权归作者所有,欢迎转载,如果文章有写的不足的地方,或者是写得错误的地方,请你一定要指出,因为这样不光是对我写文章的一种促进,也是一份对后面看此文章的人的责任。谢谢。

来自 https://www.cnblogs.com/operationhome/p/10190160.html


我的解决办法是 在nginx 的  conf/naproxy.conf 文件当中 

proxy_connect_timeout 1200s;

proxy_send_timeout   1200s;

proxy_read_timeout   1200s;

send_timeout   1200s;



如何解决 Amazon SageMaker 推理错误“从上游读取响应标头时出现上游超时(110:连接超时)”?

上次更新日期:2020 年 11 月 5 日

当我部署 Amazon SageMaker 终端节点或执行 BatchTransform 作业时,连接超时并出现如下错误:

从上游读取响应标头时出现上游超时(110:连接超时),客户端:169.xxx.xxx.xxx,服务器:,请求“POST /invocations HTTP/1.1”,上游:“http://unix:/tmp/gunicorn.sock/invocations”,主机:“169.xxx.xxx.xxx:8080”

简短描述

此错误表示 NGINX 和 Web 服务器之间的连接存在问题。无论您使用自己的容器还是预构建的容器,这两个组件都会在模型容器中运行。这些组件与 SageMaker 托管或批量转换没有直接关系。但是,当 NGINX 和 Web 服务器之间的连接超时时,SageMaker 无法从 /invocations 终端节点获得推理。 要解决此问题:

  1. 减少算法容器的延迟或增加容器的超时限制。

  2. 增加 NGINX.conf 超时设置。

解决方法

减少算法容器的延迟或增加超时限制

  • 如果您正在运行托管服务的推理代码:您的模型容器必须在 60 秒内响应请求。模型本身可能具有最长 60 秒的处理时间。如果您知道自己的模型将需要 50-60 秒的处理时间,请将开发工具包套接字超时设置为 70 秒。有关更多信息,请参阅容器应如何响应推理请求

  • 如果您正在运行批量转换的推理代码:使用 ModelClientConfig 配置 InvocationsTimeoutInSeconds 和 InvocationsMaxRetries 参数。

Amazon SageMaker 会在容器上设置已在 CreateModel 和 CreateTransformJob 中指定的环境变量。调整以下 API 参数以减少算法容器的延迟。例如,如果输入是可拆分的,则在创建转换作业时通过设置 MaxPayLoadInMB 字段来限制每个请求的有效负载大小。

  • MaxPayLoadInMB:发送到容器的最大有效负载大小。如果容器可以快速处理批量转换,请增加此属性。如果批量转换花费的时间超出预期,请减少此属性。

  • MaxConcurrentTransforms:默认值为 1。如果您有多个 NGINX 工作线程,请增加此设置。

  • BatchStrategy:要在一个小批量中容纳尽可能多的记录(最大限制为 MaxPayloadInMB),请将 BatchStrategy 设置为 MultiRecord,并将 SplitType 设置为“行”。

如果您使用的是用于实施 Gunicorn 的 SageMaker 框架容器,请将这些属性作为环境变量传递给 Docker 容器:

  • SAGEMAKER _MODEL_SERVER_TIMEOUT:Gunicorn 服务器的超时。要在关闭连接之前留出更多时间来处理请求,请增加此值。

  • SAGEMAKER _MODEL_SERVER_WORKERS:每个 CPU 的工作线程数。

增加 NGINX.conf 超时设置

NGINX 超时可能导致失败,因为 Amazon SageMaker 会在超时后关闭连接。如果您的容器尝试读取或写入关闭的连接,则请求将失败。修改以下一个或多个属性以适应网络开销。

  • proxy_read_timeout:这是 NGINX 在 request.send 调用之后等待模型响应的时间。增加此值以让 Amazon SageMaker 在关闭连接之前有更多时间来处理请求。

  • worker_processes:这是入站连接的线程数。在大多数情况下,该值应等于或大于 CPU 内核数量。例如,对于双核实例类型(如 ml.m5.large),请将此属性至少设置为 2。

  • worker_connections:这是每个工作进程同时连接的最大数量。理想的起始值是 1024。

有关配置设置的更多信息,请参阅 NGINX 文档中的 Module ngx_http_proxy_module

来自  https://aws.amazon.com/cn/premiumsupport/knowledge-center/sagemaker-upstream-timed-out-header/


普通分类: