返回

分析Cloudflare免费计划

对Cloudflare workers 的免费计划进行剖析,计算个人如何最大程度的白嫖~

引言

为了让个人开发者更好的白嫖使用Cloudflare Workers相关项目,先对其免费计划进行分析。

Cloudflare Workers 计划
Cloudflare Workers 计划

分点介绍

Workers和Pages

请求次数在美国时间0点刷新
请求次数在美国时间0点刷新

首先个人的小项目一般无需关注第一项,也就是我们只需要考虑请求次数即可。

那么十万次请求是什么概念呢?一天24小时,平均每小时最多4166个请求,那么项目的平均QPS(每秒查询数)就要小于1.157。

想象一下,如果你的个人项目,在24小时以内,每秒都至少有1.157个请求,那么这个项目所带来的商业价值将会支撑起你使用付费计划。

毕竟一个个人小项目,每天能够有几千次请求就已经算是不小的成功了。

Workers构建

这个没啥说的,个人部署项目是用不完的。

Workers 日志

同上,个人用不完。

耐用对象(Durable Objects)

Durable Objects
Durable Objects

免费计划核心限制

限制项 免费额度 说明
请求数 100,000 次/天 包括 HTTP 请求、RPC 会话、WebSocket 消息等
持续时间 13,000 GB‑秒/天 内存(GB)× 运行时间(秒)的累计值
行读取 5,000,000 次/天 SQLite 数据库读取操作
行写入 100,000 次/天 SQLite 数据库写入操作
存储 5 GB 持久化存储空间

关键限制分析

1. 请求数是最主要的瓶颈

  • 每天 100,000 次请求,平均每秒约 1.157 次请求(QPS)。
  • 如果应用存在访问高峰(如白天 8 小时集中 80% 流量),峰值 QPS 可能达到 5–10 倍的平均值,即约 6–12 QPS。

2. 持续时间限制通常不会先触及 假设每个请求的 Durable Object 实例使用 128 MB(0.125 GB)内存,平均运行 100 毫秒(0.1 秒),则每次请求消耗约 0.0125 GB‑秒
100,000 次请求仅需 1,250 GB‑秒,远低于 13,000 GB‑秒的限额。

3. 数据库操作限制相对宽松

  • 若每次请求平均触发 5 次读取,100,000 次请求对应 500,000 次读取,仅用掉读取限额的 10%。
  • 写入限额与请求数相同(100,000 次),若每次请求伴随一次写入,则写入限额与请求数同时耗尽。

用户承载量估算

承载用户数主要取决于 每个用户每天产生的请求数,下表列出几种典型场景:

应用类型 每个用户每天请求数 可承载 DAU 说明
轻量级 API/后台任务 1–2 50,000–100,000 如天气查询、定时推送等
中等交互 Web 应用 10–20 5,000–10,000 典型 SPA,每次操作产生 1–2 个 API 请求
重度交互 Web 应用 50–100 1,000–2,000 页面包含大量资源(图片、脚本)或频繁轮询

并发用户数估算(以中等交互场景为例)

  • 假设每个用户每天发起 10 次请求,则每天可支持 10,000 个会话
  • 平均会话时长 10 分钟(600 秒),每天考察时间 24 小时(86,400 秒)。
    平均并发用户数 ( C = \frac{10,000 \times 600}{86,400} \approx 69.4 ) 人。
    峰值并发用户数 ( C’ \approx C + 3\sqrt{C} \approx 69.4 + 3 \times 8.3 \approx 94.3 ) 人。

注意事项

  1. 实际用户行为差异大:上述估算基于典型假设,若您的应用每个页面加载产生 50+ 请求(如富媒体站点),用户数会相应降低。
  2. 其他资源可能先耗尽:如果应用频繁进行数据库写入(如聊天记录),100,000 次写入可能先于请求数耗尽。
  3. 免费计划适合阶段:该额度非常适合个人项目、原型验证、小型工具或低频服务,能够支撑数千到数万 DAU 的稳定运行。
  4. 监控与优化:建议在 Cloudflare Dashboard 中监控各项用量,通过缓存、合并请求、减少不必要的数据库操作等方式优化资源使用。

总结

Cloudflare Durable Objects 免费计划能为个人或小型项目提供相当可观的承载能力。在中等交互强度(每用户每天约 10 次请求)下,可支持约 5,000–10,000 日活用户,并发用户约 70–95 人。若您的应用更轻量,甚至可接近 10 万日活。建议根据实际应用类型参考上表进行估算,并在早期关注请求数的使用情况。

D1 数据库

D1
D1

以作者实际使用了一年多的经验来看,在抛弃了传统的关系型数据库的联表查询后,并且没有太多的写入操作(例如:用户资料的更新、社区的用户评论等),那么在中等交互强度的应用中,可支持约五千–两万日活用户,并发用户约数百人。若您的应用更轻量(如工具类),甚至可接近十万日活。

灵活利用KV、本地缓存是解决行读取的一个重要方式。

KV

KV 适合做 配置中心 / 灰度发布 / 轻量缓存

KV每天最多 100,000 次读取操作,与Workers的每日请求数相同,所以不用担心会超出限制。

限制

请不要将KV当做Redis类的缓存服务,其根本承担不起频繁的读写!尤其是写操作!!!

典型用途

  • 配置中心
  • 功能开关(Feature Flag)
  • 灰度 / A/B
  • 轻量缓存(确保非常轻量才行)
  • 白名单 / 黑名单

KV 与其他存储对比

存储 特点 适用
KV 快、简单 配置 / 灰度
D1 SQL 业务数据
Durable Object 强一致 计数 / 会话

如果你已经在用 Cloudflare Worker,KV 几乎是必用组件

Workers AI

每天最多 10,000 个神经元(Neurons)。

这个神经元呢,简单理解一下:

神经元 = (输入tokens + 输出tokens)* 模型系数

不同模型的系数不一样,我自己测试了llama-3.1-8b-instruct的模型,其输入、输出、消耗如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18

消耗神经元:39.11,总tokens为324

输入:
短语“Hello, World”的起源是什么。

输出:
{
  "response": "\"Hello, World\" 是计算机编程中的一种传统的例子,用于测试一个程序是否正常工作。这个短语的起源可以追溯到1960年代初期的计算机科学。\n\n具体来说,\"Hello, World\" 的首次出现可以追溯到1964年,英国科学家彼得·安德森(Peter Anderson)在他的论文《操作系统的设计》中使用了这个短语作为一个例子。然而,这个短语并没有广泛流行。\n\n真正使\"Hello, World\"成为计算机编程的标志的是1968年,美国计算机科学家布莱恩·科潘(Brian Kernighan)和皮特·丹尼森(Pete Denning)在他们的论文《操作系统概论》中使用了这个短语。他们将其作为一个例子,展示如何使用汇编语言编写一个程序来输出\"Hello, World\"。\n\n从那时起,\"Hello, World\"就成为计算机编程中一个常见的例子,用于测试程序的基本功能,并且被广泛使用于各种编程语言中。",
  "usage": {
    "prompt_tokens": 74,
    "completion_tokens": 250,
    "total_tokens": 324,
    "prompt_tokens_details": {
      "cached_tokens": 0
    }
  }
}

详细的定价请参照Workers AI 定价 | Cloudflare 官网

使用超了并不会转为付费计划,而是提示错误。

超出用量报错
超出用量报错

所以这个AI随便玩玩就可以了,别指望把这个部署到小龙虾🦞上,那token费用可贵可贵了。

Queues

消息队列,搞过微服务的应该都清楚用法了。

免费计划:每日一万次操作(读/写/删除),消息最多保留24小时。

使用场景

  1. 异步任务处理
  • 图片/视频处理(压缩、水印、格式转换)
  • 邮件发送、短信通知
  • 数据导出/报表生成
  1. 事件驱动架构
  • 用户注册后触发欢迎邮件、初始化数据
  • 内容发布后触发 SEO 优化、社交分享
  1. 工作流解耦
  • 将耗时操作从主请求中剥离,提升响应速度
  • 实现重试机制和死信队列(DLQ)

小技巧

  1. 批量处理:Queues 支持批量消费,减少 API 调用次数
  2. 并发控制:通过 Worker 的 queue处理器自动管理并发
  3. 延迟消息:使用 delaySeconds参数实现定时任务

计算

实际容量换算

  • 单条消息 ≤ 64KB:1 次操作
  • 典型任务流程(写入→读取→删除):3 次操作
  • 每日可处理消息数:约 3,333 条完整流程消息(10,000 ÷ 3)

个人项目典型用量

  • 用户注册邮件发送:假设每日 100 新用户 → 300 次操作
  • 图片处理任务:每日 1000 张图片 → 3,000 次操作
  • 数据同步任务:每小时 10 次同步 → 每日 720 次操作
  • 日志处理:每日 1,000 条日志 → 3,000 次操作

总计约 7,020 次操作,仍在免费额度内。

Hyperdrive

这个我没有使用过,但据我了解,其主要作用就是让Workers项目使用已有的外部数据库

要知道,Workers项目是 Serverless 型项目,每次对外部数据库的请求都会创建链接,而我们正常项目启动后就会建立数据库连接池,应用内所有的请求都是共用这个池子里的链接。

如果流量上来,数据库会直接挂掉的。

并且Hyperdrive还会对访问这些数据库提供加速功能(全球范围)。

不过每天十万次查询,感觉还是有点少的,不能当做主数据库使用。

Vectorize

矢量数据库,主要就是语义搜索,使用场景有:文档搜索、文章推荐、内容去重和归类等。

Vectorize 使用场景
Vectorize 使用场景

这个暂且不表,后续等我使用过一段时间后再讨论免费计划够不够用。

浏览器呈现

Browser Rendering 允许开发者在无服务器环境中通过API或Workers控制无头浏览器,实现网页渲染、截图、PDF生成和数据抓取等自动化操作。

对于免费用户,每天只有十分钟的使用时间…emmm…聊胜于无吧…

总结

总体来说,免费计划用于我们的小项目完全足够,当用户量大起来时,流量带给你的收益足以支撑起更换为付费计划。(除非你没有盈利目的。)

Cloudflare就是个人开发者的赛博活佛!感谢Cloudflare看不上这三瓜俩枣😂

附录

参考

版权信息

本文原载于 彩虹兔の博客,遵循 CC BY-NC-SA 4.0 协议,复制请保留原文出处。

Licensed under CC BY-NC-SA 4.0
最后更新于 2026年 03月 12日 20:29 CST


© Licensed Under CC BY-NC-SA 4.0