为什么Google Pipeline VM实例会无限期挂起?

时间:2017-02-11 01:13:33

标签: google-cloud-dataflow google-genomics

我正在使用Dockerflow通过Google Cloud Platform上的Google Pipelines API运行并行任务。我开始了一个单步执行的任务,并行运行了1389个虚拟机,发现其中有233个虚拟机显然无所事事且无限期挂起。

我对串行控制台输出进行了抽查,并反复看到虚拟机运行到"让控制器配置失败"错误。

当我尝试登录虚拟机时收到错误:"连接失败。我们无法通过端口22"。

连接到VM

我想知道为什么我的VM实例挂起,如果有什么我可以做的,以避免遇到这些问题。

我已经在

下面添加了一段串行控制台输出
startupscript: +++ readlink -f /usr/share/google-genomics/startup.sh
startupscript: ++ dirname /usr/share/google-genomics/startup.sh
startupscript: + cd /usr/share/google-genomics
startupscript: + ./controller --operation_id <id> --validation_token <token> --base_path https://genomics.googleapis.com
create controller[2905]: Getting controller config
create controller[2905]: Getting controller config failed, will retry: Get <link>: Get <service_account_token_link>: net/http: timeout awaiting response headers
create controller[2905]: Getting controller config failed, will retry: Get <link>: dial tcp 74.125.26.95:443: i/o timeout
collectd[2342]: write_gcm: Asking metadata server for auth token
collectd[2342]: write_gcm: curl_easy_perform() failed: Couldn't connect to server
collectd[2342]: write_gcm: Error -1 from wg_curl_get_or_post
collectd[2342]: write_gcm: wg_transmit_unique_segment failed.
collectd[2342]: write_gcm: wg_transmit_unique_segments failed. Flushing.

2 个答案:

答案 0 :(得分:1)

我们有一个临时的网络问题 - east1-b。所有3个虚拟机都位于us-east1-b。这些小事件不会出现在https://status.cloud.google.com/

成功运行的串行控制台输出如下所示:

A Feb 21 19:05:06 ggp-5629907348021283130 startupscript:+ ./controller --operation_id --validation_token --base_path https://autopush-genomics.sandbox.googleapis.com 2月21日19:05:06 ggp-5629907348021283130创建控制器[2689]:获取控制器配置 2月21日19:05:36 ggp-5629907348021283130创建控制器[2689]:获取控制器配置失败,将重试:获取https://genomics.googleapis.com/v1alpha2/pipelines:getControllerConfig?alt=json&operationId=&amp; validationToken =:拨打tcp 173.194.212.81:443:i / o timeout A Feb 21 19:05:43 ggp-5629907348021283130 controller [2689]:切换到状态:pull-image A Feb 21 19:05:43 ggp-5629907348021283130 controller [2689]:调用SetOperationStatus(pull-image) A Feb 21 19:05:44 ggp-5629907348021283130 controller [2689]:SetOperationStatus(pull-image)成功

“获取控制器配置失败,将重试”很好。它在重试后成功了。 “SetOperationStatus(pull-image)成功”表示网络正在运行。

理论上,您可以向Pipelines API提交任意数量的作业,API将负责排队。

如果这些临时网络问题变得普遍,我们可能会考虑更改Pipelines API以某种方式检测并重试。

答案 1 :(得分:0)

可能存在临时网络问题。你能给我一些失败的操作ID(或失败的虚拟机名称)吗?

从那时起你再次尝试过;你可以重现这个问题吗?