我正在使用 App 引擎同时处理许多长时间运行的任务(因此我需要使用基本缩放)。
我注意到一个实例只能同时处理 8 个任务(与 B4 实例的工作人员数量一致)。对于我收到的第九个任务:
POST 503: Request was aborted after waiting too long to attempt to service your request.
如何在不添加更多实例的情况下同时处理比这更多的任务?
作为最佳实践,您指定的工作人员数量应与 App Engine 应用的实例类匹配,但您可以通过修改入口点中的工作人员数量来更改它,如下例所示,并尝试查看它是否适合您.
entrypoint: gunicorn -b :8080 -w 2 main:app
max_instances
考虑通过在设置参数中设置最大实例数来配置具有基本扩展的服务basic_scaling
。您可以通过更改为手动扩展来控制实时实例扩展的数量与处理量。
如果您使用基本扩展,App Engine 会尝试保持低成本,即使随着传入请求量的增加,这可能会导致更高的延迟。
如果您通过最小化空闲实例来调整扩展设置以降低成本,那么如果负载意外增加,您将面临出现延迟峰值的风险。
基本扩展类型旨在以延迟为代价最小化成本。您的代码需要根据处理量来扩展工作人员的数量。如果您的代码不处理扩展,如果没有要处理的任务,您就有浪费计算资源的风险;如果您要处理的任务太多,您也会面临延迟的风险。加速请求的一个好方法是使用多个缓存层。
本文有助于处理实例设置并对其进行修改以获得所需的性能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句