我在golang Cloud Function错误中注意到了很多数字:
Error: quota exceeded (Quota exceeded for quota group 'CPUMilliSeconds' and limit 'CPU allocation in function invocations for us-central1 per 100 seconds' of service
奇怪的是,我的每秒调用次数不超过60次,并且有30个活动实例云功能在高峰期运行。
据我所知,您最多可以有1,000个并发实例,在我的情况下,这要达到CPU限制已经很远了30个。
控制云功能CPU执行的最佳方法是什么?
您是否建议使用CloudRun代替Cloud Functions来执行更多的CPU“需求任务”?
关于如何控制CPU使用率的唯一方法是延迟您的请求,以将使用率保持在这些限制以下。另一种选择是给函数较少的memory,这反而会适得其反,因为您的函数将花费更长的时间,并且无论如何您都可能遇到相同的麻烦。
正如Doug指出的那样,Cloud Functions不适用于您的用例,Cloud Run都不适用。 GCE实例更适合进行计算密集型操作,因为它没有内存限制,但是提供了您所提供的数量,它们还允许在Container Optimized OS中运行容器化的代码。
希望这会有所帮助。