google App Engine如何控制nodejs的实例数
google app engine how to control the number of instance nodejs
我正在使用 google 带有 nodejs 的应用程序引擎。
我想限制应用引擎使用的实例数。
在使用 gcloud cli 部署之前,我已经尝试 app.yaml 但我认为它不起作用...
我已经设置 app.yaml 文件如下
runtime: nodejs
vm: true
automatic_scaling:
min_num_instances: 1
max_num_instances: 3
cool_down_period_sec: 120 # default value
cpu_utilization:
target_utilization: 0.7
但此时仍在使用8个实例。
如何减少实例数量并控制它们?
运行gcloud app versions list
之后,
SERVICE VERSION TRAFFIC_SPLIT LAST_DEPLOYED SERVING_STATUS
default 20160811t015921 0.00 2016-08-11T02:03:24+09:00 SERVING
default 20160811t022251 0.00 2016-08-11T02:26:20+09:00 SERVING
default 20160811t023404 0.00 2016-08-11T02:36:45+09:00 STOPPED
default 20160811t031525 0.00 2016-08-11T03:17:48+09:00 STOPPED
default 20160811t053241 0.00 2016-08-11T05:35:19+09:00 STOPPED
default 20160817t191913 0.00 2016-08-17T19:21:46+09:00 STOPPED
default 20160817t220352 0.00 2016-08-17T22:06:17+09:00 STOPPED
default 20160818t171126 0.00 2016-08-18T17:14:07+09:00 STOPPED
default 20160820t000714 0.00 2016-08-20T00:10:16+09:00 STOPPED
default 20160820t033731 0.00 2016-08-20T03:39:45+09:00 STOPPED
default 20160821t023159 0.00 2016-08-21T02:34:05+09:00 STOPPED
default 20160821t025235 1.00 2016-08-21T02:55:13+09:00 SERVING
在运行之后gcloud app instances list
,
SERVICE VERSION ID VM_STATUS DEBUG_MODE
default 20160811t015921 0 RUNNING
default 20160811t015921 1 RUNNING
default 20160811t022251 0 RUNNING
default 20160811t022251 1 RUNNING
default 20160811t022251 2 RUNNING
default 20160811t022251 3 RUNNING
default 20160811t022251 4 RUNNING
default 20160821t025235 0 RUNNING YES
出来了。
这是一个已知的 GAE 问题,您可能想要对其加注星标:https://code.google.com/p/googleappengine/issues/detail?id=12363。
线程或线程中的链接中提出了一些解决方法。
其中一个导致了一个答案,这似乎是一种消除手动停止和删除不需要的实例的好方法:
根据您的命令输出,您的应用程序似乎有多个版本 运行。每个版本都会根据负载启动 (n) 个实例,即使它们没有接收流量。
看起来版本 20160821t025235
是您要保留的版本 运行。尝试这样做:
gcloud app versions stop 20160811t015921 20160811t022251
如果你这样做,它应该停止其他版本。
我正在使用 google 带有 nodejs 的应用程序引擎。
我想限制应用引擎使用的实例数。
在使用 gcloud cli 部署之前,我已经尝试 app.yaml 但我认为它不起作用...
我已经设置 app.yaml 文件如下
runtime: nodejs
vm: true
automatic_scaling:
min_num_instances: 1
max_num_instances: 3
cool_down_period_sec: 120 # default value
cpu_utilization:
target_utilization: 0.7
但此时仍在使用8个实例。
如何减少实例数量并控制它们?
运行gcloud app versions list
之后,
SERVICE VERSION TRAFFIC_SPLIT LAST_DEPLOYED SERVING_STATUS
default 20160811t015921 0.00 2016-08-11T02:03:24+09:00 SERVING
default 20160811t022251 0.00 2016-08-11T02:26:20+09:00 SERVING
default 20160811t023404 0.00 2016-08-11T02:36:45+09:00 STOPPED
default 20160811t031525 0.00 2016-08-11T03:17:48+09:00 STOPPED
default 20160811t053241 0.00 2016-08-11T05:35:19+09:00 STOPPED
default 20160817t191913 0.00 2016-08-17T19:21:46+09:00 STOPPED
default 20160817t220352 0.00 2016-08-17T22:06:17+09:00 STOPPED
default 20160818t171126 0.00 2016-08-18T17:14:07+09:00 STOPPED
default 20160820t000714 0.00 2016-08-20T00:10:16+09:00 STOPPED
default 20160820t033731 0.00 2016-08-20T03:39:45+09:00 STOPPED
default 20160821t023159 0.00 2016-08-21T02:34:05+09:00 STOPPED
default 20160821t025235 1.00 2016-08-21T02:55:13+09:00 SERVING
在运行之后gcloud app instances list
,
SERVICE VERSION ID VM_STATUS DEBUG_MODE
default 20160811t015921 0 RUNNING
default 20160811t015921 1 RUNNING
default 20160811t022251 0 RUNNING
default 20160811t022251 1 RUNNING
default 20160811t022251 2 RUNNING
default 20160811t022251 3 RUNNING
default 20160811t022251 4 RUNNING
default 20160821t025235 0 RUNNING YES
出来了。
这是一个已知的 GAE 问题,您可能想要对其加注星标:https://code.google.com/p/googleappengine/issues/detail?id=12363。
线程或线程中的链接中提出了一些解决方法。
其中一个导致了一个答案,这似乎是一种消除手动停止和删除不需要的实例的好方法:
根据您的命令输出,您的应用程序似乎有多个版本 运行。每个版本都会根据负载启动 (n) 个实例,即使它们没有接收流量。
看起来版本 20160821t025235
是您要保留的版本 运行。尝试这样做:
gcloud app versions stop 20160811t015921 20160811t022251
如果你这样做,它应该停止其他版本。