使用 PCF Autoscaler 确保正常缩减
Ensure graceful scale down with PCF Autoscaler
我有一个 PCF spring 引导应用程序,它处理一些长的 运行 批次,并计划使用 PCF AutoScaler 进行自动缩放。
如果应用程序需要大约 15-20 分钟来耗尽已经 运行 个作业,如何确保正常缩减?是否有任何机制可以控制缩减时间,以便应用程序实例在关闭前获得足够的时间?
应用程序必须正常关闭的时间量由平台设置,而不是由 PCF Autoscaler 或您的应用程序设置。对于 PCF,它将默认为 10 秒。
By default, apps must finish their in-flight jobs within ten seconds of receiving the SIGTERM before TAS for VMs terminates the app with a SIGKILL.
https://docs.pivotal.io/application-service/2-12/devguide/deploy-apps/app-lifecycle.html#shutdown
如 link 所述,您可以更改该值,但它是 platform-wide。
To modify the timeout period on the TAS for VMs tile or IST tile, go to the Advanced Settings tab and edit the “app graceful shutdown period” property.
改变它也有缺点,比如更新 Diego Cells 时需要更长的疏散时间。在平台可以停止应用程序之前,您实际上是在为所有应用程序提供那么多时间 运行,这会占用平台资源更长的时间。
我不建议增加值 platform-wide 来满足您 15-20 分钟的需求。
我的建议是调整您的批处理作业,以便它们可以暂停或停止并稍后恢复。发送 SIGTERM 后,您可以告诉作业暂停或停止,这有望在 10 秒内完成。当您的应用程序重新启动时,可以恢复暂停或停止的作业。
我有一个 PCF spring 引导应用程序,它处理一些长的 运行 批次,并计划使用 PCF AutoScaler 进行自动缩放。
如果应用程序需要大约 15-20 分钟来耗尽已经 运行 个作业,如何确保正常缩减?是否有任何机制可以控制缩减时间,以便应用程序实例在关闭前获得足够的时间?
应用程序必须正常关闭的时间量由平台设置,而不是由 PCF Autoscaler 或您的应用程序设置。对于 PCF,它将默认为 10 秒。
By default, apps must finish their in-flight jobs within ten seconds of receiving the SIGTERM before TAS for VMs terminates the app with a SIGKILL.
https://docs.pivotal.io/application-service/2-12/devguide/deploy-apps/app-lifecycle.html#shutdown
如 link 所述,您可以更改该值,但它是 platform-wide。
To modify the timeout period on the TAS for VMs tile or IST tile, go to the Advanced Settings tab and edit the “app graceful shutdown period” property.
改变它也有缺点,比如更新 Diego Cells 时需要更长的疏散时间。在平台可以停止应用程序之前,您实际上是在为所有应用程序提供那么多时间 运行,这会占用平台资源更长的时间。
我不建议增加值 platform-wide 来满足您 15-20 分钟的需求。
我的建议是调整您的批处理作业,以便它们可以暂停或停止并稍后恢复。发送 SIGTERM 后,您可以告诉作业暂停或停止,这有望在 10 秒内完成。当您的应用程序重新启动时,可以恢复暂停或停止的作业。