python - AppEngine 警告 - OpenBLAS 警告 - 无法确定此系统上的 L2 缓存大小
问题描述
我尝试在 GC AppEngine 上部署应用程序。部署过程中没有错误,但应用程序不起作用(仅显示加载页面)。日志中唯一一个奇怪的原始
OpenBLAS WARNING - could not determine the L2 cache size on this system
顺便说一句 - 它在我的本地机器上运行良好。
这是基于 Dash 框架的 python web 应用程序
我的 app.yaml:
runtime: python37
service: service-name
instance_class: F2
entrypoint: gunicorn -b :$PORT main:app.server
要求.txt:
Flask==1.0.2
dash==0.34.0
dash-html-components==0.13.4
dash-core-components==0.41.0
dash-table==3.1.11
gunicorn==19.9.0
google-cloud-pubsub==0.37.2
requests==2.21.0
pandas==0.23.4
解决方案
我刚刚对 pandas 和 Dash 遇到了同样的问题,并找到了你的问题(希望它能给我一些启发)。卡了几个小时,终于找到答案了,回来分享:-)
如果您看到的唯一错误是 OpenBLAS 警告,则该应用程序很可能运行良好。在调试了这个问题几个小时后,我发现由于 Dash 和 Pandas 消耗大量内存,F2 实例无法正确处理 Web 应用程序,并且由于 RAM 内存不足而失败。请尝试在您的 YAML/JSON 配置文件中将您的实例更改为具有更多 RAM 内存的尽可能高的自动单元,然后它可能会起作用:
instance_class: F4_HIGHMEM
编辑:Google App Engine 现在支持更多实例类型。查看实例类型的文档:标准实例
此外,请记住,第一次运行此 Web 应用程序时,将花费相当多的时间来执行。如果您检查日志,您将看到如下所示的多个提示。再等一会儿
此请求导致为您的应用程序启动一个新进程,从而导致您的应用程序代码首次加载。因此,与您的应用程序的典型请求相比,此请求可能需要更长的时间并使用更多的 CPU。
推荐阅读
- python-3.x - 如何处理方法需要 1 个位置参数但在功能代码中给出了 2 个?
- html - 轮播幻灯片动画未按预期转换 Bootstrap
- javascript - 如何将道具(从获取对象)传递给子组件
- spring-boot - 如何从 Swagger UI(OpenAPI 3,Spring Boot)中的“模式”部分隐藏某些模式
- sqlite - SQLite 自定义函数作为匹配字符串
- python - CSV 到 Avro 与 Python:Avro 架构问题
- python - 根据另一个列表中的 unicode 代码(ascii 值)替换字符串列表中的字符串前缀
- flutter - 在按下事件时打开或在新的 Bloc 表单上导航
- ubuntu - 在启动时运行 curl 命令
- python - httplib2 :- 参数应该是整数或类似字节的对象,而不是 'str'