【问题标题】:Go on Google App Engine has Frequent ShutdownsGo on Google App Engine 经常关机
【发布时间】:2019-11-17 19:23:45
【问题描述】:

我们有一个在 Google 应用引擎上运行的移动应用程序。从 2019 年 10 月 16 日起,我们突然开始遇到随机关闭问题。首先,我们看到 5xx 错误并增加了最小实例。然后错误开始显示为名为 exit(1) 的容器。现在,它已更改为终止进程,错误退出状态为 1。

Error log from nginx

这是我们当前的 app.yaml 设置:

runtime: go111
env: standard
instance_class: F2
automatic_scaling:
  min_instances: 35
  max_instances: 35
  min_idle_instances: 5
  max_idle_instances: 5  # default value
  min_pending_latency: 300ms  # default value
  max_pending_latency: automatic
  max_concurrent_requests: 50
  target_cpu_utilization: 0.8

Nginx.conf 文件

events {
  worker_connections 768;
}

http {
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 650;
  keepalive_requests 10000;
  types_hash_max_size 2048;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  # Logs will appear on the Google Developer's Console when logged to this
  # directory.
  access_log /var/log/app_engine/app.log;
  error_log /var/log/app_engine/app.log;

  gzip on;
  gzip_disable "msie6";

  server {
    # Google App Engine expects the runtime to serve HTTP traffic from
    # port 8080.
    listen 8080;
    root /usr/share/nginx/www;
    index index.html index.htm;
  }
}

最近一次关机前的应用日志:

2019-11-18 00:30:41.815 EAT
{"textPayload":"","insertId":"5dd1bc01000c72b428121c93","resource":{"type":"gae_app","labels":{"project_id":"gumzo-backend-223809","version_id":"20191114t210636","module_id":"default","zone":"us6"}},"timestamp":"2019-11-17T21:30:41.815796Z","labels":{"clone_id":"00c61b117ceb00f18aae14afcc55fa0fe6…
 
{
 insertId: "5dd1bc01000c72b428121c93"  
 labels: {
  clone_id: "00c61b117ceb00f18aae14afcc55fa0fe65cfc93726dd8a793451bb6d9c4181ec5fc32"   
 }
 logName: "projects/gumzo-backend-223809/logs/stdout"  
 receiveTimestamp: "2019-11-17T21:30:42.163592840Z"  
 resource: {
  labels: {
   module_id: "default"    
   project_id: "gumzo-backend-223809"    
   version_id: "20191114t210636"    
   zone: "us6"    
  }
  type: "gae_app"   
 }
 textPayload: ""  
 timestamp: "2019-11-17T21:30:41.815796Z"  
}
2019-11-18 03:15:22.550 EAT
Container called exit(1).
 
{
 insertId: "5dd1e29a000864b036cdfc81"  
 labels: {
  clone_id: "00c61b117ced9f166f1fc9560966f8c22ba2187c3d884e466556f0d93d1beb9d7be735db63"   
 }
 logName: "projects/gumzo-backend-223809/logs/varlog%2Fsystem"  
 receiveTimestamp: "2019-11-18T00:15:22.555202950Z"  
 resource: {
  labels: {
   module_id: "default"    
   project_id: "gumzo-backend-223809"    
   version_id: "20191114t210636"    
   zone: "us6"    
  }
  type: "gae_app"   
 }
 severity: "WARNING"  
 textPayload: "Container called exit(1)."  
 timestamp: "2019-11-18T00:15:22.550012017Z"  
}

有人知道我们如何在不多次关闭的情况下保持应用程序运行吗?提前致谢。

【问题讨论】:

  • 您的应用似乎正在崩溃。应用程序日志在哪里?
  • @TravisWebb 我已经添加了应用程序日志文件。

标签: google-app-engine go nginx


【解决方案1】:

warmup requests 添加到您的 App.yaml 文件中:

inbound_services:
- warmup

另外,我建议您更改 the target_cpu_utilization: 0.6(这是默认值)。这将使您的实例在 CPU 使用率达到 60% 时立即开始服务。这会提高您的应用性能,但会增加成本。

【讨论】:

    猜你喜欢
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多