首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Cloudflare工作请求的上下文中,CPU时间和墙壁时间是什么?

在Cloudflare工作请求的上下文中,CPU时间和墙壁时间是什么?
EN

Stack Overflow用户
提问于 2021-08-10 02:31:18
回答 1查看 1.7K关注 0票数 6

如果您在免费计划中看到Cloudflare工人这里的定价部分,他们有以下内容

每次请求的CPU时间可达10 to

在付费计划中

每次请求最多30挂墙时间

通常需要比10 to更长的时间来执行一些有用的脚本。根据任务的不同,即使是30多个壁时间也可能很短。

如果您查看工人文档的限制: CPU运行时部分,它有

大多数工作人员请求消耗的时间少于一毫秒。很少能找到超出CPU时间限制的正常运行的Worker脚本。一名工人在免费计划中最多可消耗10毫秒,在“有偿计划”中,捆绑工人最多可消耗50毫秒。付费计划还为增加计算时间提供了30秒的持续时间。对于大多数用例(包括应用程序托管)来说,免费计划上的10 is允许有足够的执行时间。 工人脚本的实际运行时没有限制。只要发送请求的客户端保持连接,Worker脚本就可以继续处理、进行子请求和代表该请求设置超时。当客户端断开连接时,与该客户端请求关联的所有任务都将被取消。您可以使用event.waitUntil()将取消延迟再延迟30秒,或者直到传递给waitUntil()的承诺完成为止。

虽然在一般意义上的CPU时间,墙时间在这个帖子中提到是正确的。我认为这不是这个上下文中的准确含义,因为在post链接中,CPU时间是内核或用户空间中的代码执行时间。

CPU time per request也不同于AWS中的代码执行CPU时间,因为它提到了以下内容

工人脚本的实际运行时没有限制。

因此,脚本实际运行时(即CPU执行时间)不限于15分钟,就像AWS中的那样。

然后

  • 在Cloudflare工作人员中,每个请求的10 is时间是多少?
  • 在付费计划中提到的每一个请求的30多个墙时间是多少?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-10 13:46:42

"CPU时间“是指CPU主动执行JavaScript代码的时间。这不包括CPU等待某些事情发生的时间,例如等待fetch()完成或setTimeout()启动的时间。

许多工作人员花费不到毫秒的CPU时间来执行。例如,如果您只是在每个请求上更改一个标头,然后将其发送到另一个服务器,那么您的工作人员可能只需花费几百微秒的CPU时间(因此,每一毫秒的十分之一)。在免费计划下,每个请求的工作时间限制在10毫秒以内,这实际上是足够做很多事情的时间。

“墙壁时间”指的是由墙上的时钟测量的时间,即真实世界的时间。与CPU时间不同,墙壁时间包括花费的等待时间。因此,如果您对其他服务器执行fetch() (HTTP ),并且响应需要3秒,那么整个过程可能不到1毫秒的CPU时间,而是3秒的壁时间。

付费计划指定请求处理的30秒限制。实际上,这里的强制限制是CPU时间,而不是墙时间。因此,一个请求可能会花费更长的时间超过30,只要它没有一直在执行代码。但是,请注意,当请求超过30秒时,请求被随机中断的更改会上升。例如,运行时间很长的请求可能会遭受TCP超时或随机网络断开.此外,当Workers接收到代码更新时,它会给所有在途请求30秒(相当于墙壁时间),以便在取消这些请求之前完成它们。因此,请求运行时间超过30秒的应用程序需要在随机断开连接时实现重试逻辑。(即使对于较短的请求,重试逻辑也是个好主意,因为任意长度的请求都可能出现随机中断,但超过30秒的请求具有更高的风险。)

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68720436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档