通过“ PCF的调度程序”调度的作业失败,并显示OutOfMemoryError

时间:2018-10-20 09:30:30

标签: cloudfoundry job-scheduling pivotal-cloud-foundry

我正在推送配置3g内存的批处理应用程序,

applications:
- name: batch-app
memory: 3G
services:
    - scheduler
buildpack: java_buildpack

为批处理应用程序创建作业

cf create-job batch-app job-name ".java-buildpack/open_jdk_jre/bin/java org.springframework.boot.loader.JarLauncher"

,然后按如下所示安排作业:

cf schedule-job job-name "30 * ? * *"

现在,每个计划的作业执行都会失败,并显示以下错误:

2018-10-20 [APP/TASK/612f1b80] [OUT] Exit status 137 (out of memory)

同一作业作为任务运行时成功(即使内存少于清单中指定的内存):

cf run-task job-name ".java-buildpack/open_jdk_jre/bin/java org.springframework.boot.loader.JarLauncher" --name "manual" -m 2GB

我在这里想念什么?

1 个答案:

答案 0 :(得分:2)

在撰写本文时,Scheduler不支持具有自定义内存设置。不幸的是,它也不使用应用程序的内存限制。它使用您在基础上设置的默认内存限制,例如,如果您未设置内存限制,通常为1G。

我相信这是在路线图上。同时,您可以通过几种方式解决此问题。

  • 您可以增加平台的默认内存限制。显然,这不利于影响平台上依赖默认设置的其他人。
  • 您可以推送仅包装批处理作业的Web应用程序。然后,您可以使用Scheduler的Call API使Scheduler在给定的时间间隔内调用URL。 https://docs.pivotal.io/pcf-scheduler/1-2/using-calls.html。这有一些额外工作的缺点。