评论

云开发的函数 GBs 到底是如何计算的?

云开发的函数 GBs 到底是如何计算的?

在云开发中,数据库的存储容量、文件存储的容量都是十分容易理解的,让开发者最为迷惑的,莫过于云函数的资源使用量 GBs。GBs 是个什么鬼?他到底是如何计算的?今天,我们就来说一说。

传统云主机的计费模式

想要说明白云函数的计费模式,那我们就要看一看与之类似,我们很熟悉的传统的包月型云主机的计费模式。

在传统的包月型云主机中,我们需要支付整月的费用,以保留我们对于自己所使用的服务器实例的使用权,在这个过程中,无论你的服务是否使用了云主机,你都需要支付相应的费用。但实际情况是,我们绝大多数的业务都只在全天的某个特定时段有流量,其他的绝大多数的时间都没有什么流量,比如说,一个企业门户网站,往往流量都在上班时间,下班时间几乎没有流量。

但,传统云主机这种包月的计费模式,要求我们必须为整段时间付费,你必须要支付整段时间的费用,即使你并没有使用这些资源!

这种包月的计费模式使得用户为自己所不需要的资源支付了费用,因此,后续的人们发明了按量计费,并将按量计费的粒度不断缩小,从按日计费,缩短到按小时计费,缩短到按秒,甚至是按毫秒进行计费。随着粒度不断变细,我们支付的费用,越来越趋向于我们自己所使用的资源的费用。

云函数的计费模式

在上面我们说到,在传统云主机上,我们提供的是整段时间的计费,随着技术的先进,我们渐渐有了粒度不断变细的按量计费。

但是,在 Serverless 的范式下,用户对于云函数背后的服务器主机是无感的,这时就需要一个东西来进行用量的评估,从而完成计费。在云函数中,最重要的两个要素就是:内存用量运行时间。一般来说,云函数的用量我们按照 GB 来计算,比如一个函数的内存用量是 256MB,则其内存用量表示为 0.256GB ;而时间则是以 S 来计算,如果一个函数用了 2s ,则运行时间就是 2s 。

这个时候,我们的函数的具体资源用量就可以简单的用两个数值相乘得出

举例说明

这里我们举个例子来说明计算。

这里有一个函数,在日志中的右上角,我们可以看到函数的执行时间和内存使用量,分别是 1.43ms 和 27.42MB,则我们的函数资源用量就是 0.00143 x 0.02742 = 0.0000392106,也就是说,我这个情况使用了 0.0000392106 GBs 的资源用量。显然,这样的用量是十分小的。

云函数的资源用量计算有什么用?

了解云函数的资源用量计算,就能够让你发现你自己的资源的具体用量,并以此得到具体的资源消耗情况,能够让你更加轻松的了解到自己的钱都花到哪里去了。更重要的是,知道在哪里查看执行时间和内存使用量可以指引你优化自己的云函数性能。

最后一次编辑于  2019-12-20  
点赞 4
收藏
评论

2 个评论

  • xunxun
    xunxun
    2020-03-25

    dawdwa别误导人了, 计费是按云函数最大配置256MB算的,不按实际用量

    2020-03-25
    赞同 3
    回复 1
    • 深圳老韩
      深圳老韩
      2020-09-23
      是不是计费时长也不是按照实际时长的?
      2020-09-23
      回复
  • 我的小伙伴
    我的小伙伴
    2021-10-13

    云函数运行时最大可用内存为 256 MB。在云函数运行日志中展示的运行内存信息,为当次运行时的实际使用内存。实际使用内存可能低于最大可用内存,计费时按配置内存即 256 MB 计算。

    云函数是可以配置内存大小的,虽然默认是256M,可以改为合适的大小(内存最小 128 MB 最大 1536 MB)。

    2021-10-13
    赞同
    回复
登录 后发表内容