当前位置: 首页 > 知识库问答 >
问题:

如何通过传递environment属性或deployment属性来增加SCDF任务在pivotal启动时的堆内存

慕皓君
2023-03-14

我正在使用task-launcher-sink 1.3.1发行版和SDCF 1.4.0发行版在PCF上启动我的任务。“我的任务”的默认分配堆不足以运行它,因为“我的任务”正在处理较大大小的数据。因此,它给出了堆分配错误,资源耗尽事件:JVM无法从堆中分配内存。

通过在PCF上手动提供MyTask>Setting>User Provided Environment变量中的java_opts=-xms128m-xmx512m,我可以运行我的任务。但是当我使用task-launcher-sink时,这个参数将作为环境变量或部署参数提供。

2019-04-26T11:32:35.522+05:30[APP/TASK/MYTASK/0][OUT]内存使用情况:

2019-04-26T11:32:35.523+05:30[APP/TASK/MYTASK/0][OUT]堆内存:初始化16777216,使用108648024,提交344653824,最大344653824

2019-04-26T11:32:35.524+05:30[App/Task/MyTask/0][OUT]提示:堆内存已满95%以上。若要增大它,请增大容器大小。

2019-04-26T11:32:35.526+05:30[APP/TASK/MYTASK/0][OUT]非堆内存:初始化2555904,已使用103426448,已提交105512960,最大值631562240

2019-04-26T11:32:35.527+05:30[APP/Task/MyTask/0][OUT]内存池使用情况:

2019-04-26T11:32:35.528+05:30[APP/TASK/MYTASK/0][OUT]代码缓存:初始化2555904,使用18623104,提交18743296,最大251658240

2019-04-26T11:32:35.529+05:30[APP/TASK/MYTASK/0][OUT]元数据:初始化0,已使用75305304,已提交76939264,最大194146304

2019-04-26T11:32:35.530+05:30[APP/TASK/MYTASK/0][OUT]压缩类空间:初始化0,使用9498136,提交9830400,最大185757696

2019-04-26T11:32:35.531+05:30[APP/Task/MyTask/0][OUT]伊甸园空间:初始化4521984,使用3132632,提交95092736,最大95092736

2019-04-26T11:32:35.533+05:30[APP/Task/MyTask/0][OUT]幸存者空间:初始化524288,已使用0,提交11862016,最大11862016

2019-04-26T11:32:35.534+05:30[APP/TASK/MYTASK/0][OUT]终身GEN:初始化11206656,使用105515392,提交237699072,最大237699072

2019-04-26T11:32:35.534+05:30[APP/TASK/MYTASK/0][ERR]jvmkill终止当前进程

2019-04-26T11:32:35.534+05:30[APP/TASK/MYTASK/0][OUT]2019-04-26 06:02:35

共有1个答案

欧阳狐若
2023-03-14

您必须将-XMS128M-XMX512M选项作为TaskLaunchRequest的部署属性传递:

deployer.{app}.cloudfoundry.javaOpts=-Xms128m -Xmx512m

其中{app}代表SCDF任务应用程序的名称,即Task createSCDF shell命令定义中引用的标识符(不要与PCF应用程序名称混淆)。

此外,如果需要,您应该能够通过添加另一个部署属性来控制PCF应用程序可用的内存总量(在配额允许的范围内):

deployer.{app}.cloudfoundry.memory=1g

注意,我通过研究和调试任务启动程序代码发现了这一点。在这方面,文件可以更清楚一点。

 类似资料:
  • 我正在尝试通过java运行jmeter。这些例子来自https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui 我上传了jmx文件,如示例中所述。 在jmx文件中,我有属性。指定的属性,如${uuuu属性(0个用户,0)} 我设法通过命令行使用-J参数上传了这个属性。 如何通过java指定参数

  • 问题内容: 我正在使用Spring Framework计划任务,并通过特定于环境的属性文件设置了cron值。我正在寻找一种通过属性禁用此任务的方法,以便只有某些环境才能运行此任务。 问题答案: 你可以使用Spring环境配置文件(使用注释例如,使用XML的例子),这样你就可以有更大的发展不同的配置,测试,生产等,这些都是通过属性(spring.profiles.active)设置。

  • 问题内容: 在我的HTML文件中,我已通过以下方式链接到JS: 我的JS可以像这样直接读取此var的值吗? 这不起作用,并且FireFox错误控制台显示“未定义配置”。如何读取JS文件中通过src属性传递的var?这样简单吗? 问题答案: 您无法按照尝试的方式将变量传递给JS。SCRIPT标记不会创建Window对象(具有查询字符串),并且它不是服务器端代码。

  • 问题内容: 我想使用通过命令行传递的自定义版本来构建JAR,例如: 当我执行gradle构建任务时,如下所示: 应该生成myproject-1.0.jar。 我尝试将下面的行添加到 build.gradle ,但是没有用: 问题答案: 您无法从命令行覆盖现有项目属性,请在此处查看。因此,请尝试将版本变量重命名为不同于版本的变量,并在命令前使用flag进行设置,例如: 然后在您的build.grad

  • 问题内容: 我有一个属性指令,其限制如下: 我需要传递两个属性;一个数字和一个函数/回调,使用对象在指令中访问它们。 如果指令是元素指令,那么我可以限制为: 但是,出于某种原因,我不再赘述,我需要将该指令作为属性指令。 如何将多个属性传递到属性指令中? 问题答案: 该指令可以访问在同一元素上定义的任何属性,即使该指令本身不是该元素也是如此。 模板: 指示: 如果attribute的值将被硬编码,则

  • 在 PowerShell 中,如何通过指定对象的名称(字符串)来获取对象的属性值?我想要类似这样的东西: 是否有类似于“获取属性名称”的内容?