1.并发数和qps
并发数(Concurrency)指的是在同一时刻系统正在处理的请求、任务或连接的数量。
比如:
- 你有一个 Web 服务,同时有 1000 个用户在访问页面,这时的并发数就是 1000。
- 对于数据库连接池,池子里同时保持的连接数量也是一种并发数的体现。
⚡ 特点:
- 描述的是“同时”有多少请求在被处理。
- 常用于衡量系统的承载能力。
👉 例子: 假设你有一个服务,每个请求需要 2 秒完成,系统最大支持 500 个请求同时在跑,
那么你最高能撑到的并发数就是 500。
QPS 是指每秒系统处理完的请求数量,通常用来衡量系统的吞吐量。
⚡ 特点:
- 描述的是单位时间内完成了多少请求。
- 常用于衡量系统的性能表现,比如负载能力、响应速度等。
👉 例子: 如果你的系统在 1 秒内处理了 2000 个请求,那你的 QPS 就是 2000。
公式:
2.并发数和协程数的关系
虽然服务并发数和协程数有关,但它们不是强绑定的。
- 并发数:指的是同时有多少请求在被处理,和系统架构、负载有关。
- 协程数:指的是程序中实际创建的协程数量,和服务的实现方式、调度策略有关。
3.tps和qps
TPS 代表的是 每秒完成的“事务”数量,事务通常是指一组操作,需要满足 ACID(原子性、一致性、隔离性、持久性)特性,常见于数据库、支付系统等场景。
👉 例子:
在一个支付系统里,一次完整的支付事务可能包括:
- 扣减账户余额
- 更新订单状态
- 记录日志
- 发通知
⚡ 只有整组操作全部成功,才算完成 1 个事务。
如果每秒完成 100 次支付,TPS = 100。
通常 QPS > TPS,因为TPS是一组完整的操作,
4.计算日活需要去重吗
日活(DAU,Daily Active Users)**时,必须对 UID 去重,否则就不是“真实活跃用户”了。
活跃行为 一般包括:登录、访问页面、使用某个功能、发帖、评论、点赞等操作,这些都只能算一个日活。