应用程序引擎无法部署具有大数据框的应用程序

时间:2019-08-12 19:36:30

标签: python-3.x pandas google-app-engine google-cloud-platform google-app-engine-python

所以我用机器学习在一个大约1000条记录的小熊猫数据帧上构建了一个应用程序。我使用gcloud app deploy,它托管在appspot上,我可以使用它。

我将数据框增加到约30,000条记录,并且该应用程序仍在本地运行。当我使用gcloud app deploy时,出现500服务器错误。我正在从项目根目录中的csv加载数据帧。

我的app.yaml看起来像:

runtime: python37
service: snow
instance_class: F4_1G  

从另一个stackoverflow帖子中,我将instance_class切换为F4_1G,但它始终出现相同的错误。我也尝试过

gcloud config set app/cloud_build_timeout 1000  

关于什么原因可能导致应用引擎出现此错误?

1 个答案:

答案 0 :(得分:2)

错误:

  

“超出了2048 mb的软内存限制,请考虑在应用程序Yaml文件中增加”

表示您的实例类已用完内存,理论上可以通过指定另一个实例类来增加内存,但是您已经在使用内存最大的实例类(2048mb)。检查instance classes的列表。

因此,在您的情况下,解决方案是将其更改为App Engine Flex,然后您需要在 app.yaml 中指定类似的内容:

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 2.1 
  disk_size_gb: 10

memory_gb 上,您指定vm实例将使用的内存,这是知道要设置哪个值的公式:

  

memory_gb = cpu * [0.9-6.5]-0.4

您可以从[0.9-6.5]间隔中选择所需的内存,然后将其乘以CPU数量并减去0.4。有关更详细的说明,请检查app.yaml reference documentation

此外,请检查App Engine Pricing documentation,以了解您的帐单将如何从标准更改为弹性。