Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 云运行-OpenBLAS警告和应用程序重启(不是冷启动问题)_Docker_Google Cloud Platform_Google Cloud Run_Openblas - Fatal编程技术网

Docker 云运行-OpenBLAS警告和应用程序重启(不是冷启动问题)

Docker 云运行-OpenBLAS警告和应用程序重启(不是冷启动问题),docker,google-cloud-platform,google-cloud-run,openblas,Docker,Google Cloud Platform,Google Cloud Run,Openblas,问题 我有一个应用程序在一个实例上运行了5个月。 应用程序的启动时间约为3分钟,启动结束后不需要太多RAM。 以下是我在本地运行应用程序时docker统计数据的两个快照: 当应用程序不兴奋时 当应用程序每秒接收10个请求时(这已经超过了我们目前的用例): 当我在本地运行应用程序时没有任何问题,但是当我在云上部署应用程序时会出现问题。我一直收到:“OpenBLAS警告-无法确定此系统上的二级缓存大小,假设256k”消息,然后重新启动应用程序。这是一个问题,因为正如我所说,应用程序需要3分钟才能

问题

我有一个应用程序在一个实例上运行了5个月。 应用程序的启动时间约为3分钟,启动结束后不需要太多RAM。 以下是我在本地运行应用程序时docker统计数据的两个快照:

当应用程序不兴奋时

当应用程序每秒接收10个请求时(这已经超过了我们目前的用例):

当我在本地运行应用程序时没有任何问题,但是当我在云上部署应用程序时会出现问题。我一直收到:“OpenBLAS警告-无法确定此系统上的二级缓存大小,假设256k”消息,然后重新启动应用程序。这是一个问题,因为正如我所说,应用程序需要3分钟才能重新启动,在此期间,请求需要花费大量时间才能得到处理

我已经通过使用最小实例1和使用GoogleCloudScheduler每分钟查询一次服务来修复了这个问题

示例

下面是我在日志中看到的示例。

在第二个示例中,警告在应用程序重新启动后再次出现,导致连续第二次重新启动,这种情况经常发生。 还请注意,这些警告/重启不一定发生在用户连接到应用程序时,但也可能发生在唯一的活动是由于谷歌云调度器

我尝试将分配的RAM和CPU增加到4个CPU和4个Go的RAM(这是一个巨大的过度杀戮),但问题仍然存在

更新02/21
截至21年1月1日,我们的云运行服务停止了这种行为(可能是由于更新,我不知道)。我确实联系了GCP支持人员,但他们只是告诉我在OpenBLAS github repo上提出一个问题,但由于我无法重现这种行为,我没有这样做。我将把这个问题留待讨论,因为我所做的一切都没有真正起作用。

OpenBLAS执行高性能计算优化,并且需要知道什么是CPU容量,才能使自己达到最佳状态

但是,当您在Cloud run上运行容器时,您可以在沙箱GVisor中运行它,以提高在同一无服务器平台上运行的所有容器的安全性和隔离性

这个沙箱拦截低级内核调用并丢弃异常/危险的调用。我猜正是由于这个原因,OpenBLAS无法确定二级缓存的大小。在您的环境中,您没有这个沙箱,您可以直接访问CPU信息

为什么重新启动??这可能是OpenBLAS的问题,也可能是云运行的问题(可疑的内核调用,杀死实例并重新启动)


我没有立即的解决方案,因为我不知道OpenBLAS。我在Tensorflow服务中也有类似的行为,Tensorflow提出了一个没有任何CPU优化的编译版本:效率较低,但更具可移植性,并且能够适应不同的环境约束。如果OpenBLAS也有类似的编译,那么测试一下就太好了。

谢谢您的回答。这似乎比我想象的更技术化。你是如何确定是Tensorflow造成了这些错误的?我使用了许多不同的库,我不知道哪一个可能是原因。我有一个GVisor警告日志条目。我更改了Tensorflow服务的编译版本,GVisor跟踪消失,但由于硬件优化被禁用,我从Tensorflow获得了一个新的跟踪。好的,我将尝试确定导致它的原因,并希望继续此线程。