TPS
2024年12月25日
一、nodejs_tps
1.1 认识
TPS (Transactions Per Second)
是衡量系统或服务每秒处理多少事务的指标。它通常用于监控数据库、消息队列和应用层的事务处理能力。对于 Web
服务而言,TPS
代表的是每秒钟系统能够处理的业务请求或事务的数量。通过对 TPS
的监控,系统架构师可以更好地规划服务器的扩容和负载均衡,以适应日益增长的负载。如果 TPS
达到一定阈值并出现下降或不稳定,可以及时发现潜在的性能瓶颈或资源不足问题。
TPS
用来衡量系统处理每秒原子事务的能力,适用于那些涉及多个操作、需要事务保证的一致性的场景。TPS
则更侧重于事务处理,尤其是那些需要保证一致性和原子性的操作。例如: 在数据库中,一个事务可能包括插入、更新和删除等操作。QPS
用来衡量系统处理每秒请求的能力,通常适用于 无状态请求,且不需要事务处理的场景。QPS
是一个更宽泛的概念,适用于大多数的 HTTP
请求和查询操作,关注的是请求的频率。例如,一个 HTTP
请求可能只是查询或获取资源,并不涉及多步骤的操作。
1.2 计算
// 每秒钟统计的请求数
let transactionCount = 0;
// 每秒钟的 TPS 计算
setInterval(() => {
// 当前秒的请求数即为 TPS
const tps = transactionCount;
console.log("TPS:", tps);
// 重置计数器
transactionCount = 0;
}, 1000);
// 定义 TPS 计算中间件
async function tpsMiddleware(ctx, next) {
// 执行下一个中间件
await next();
// 只有成功的请求才会计入 TPS
if (ctx.status >= 200 && ctx.status < 300) {
transactionCount++; // 增加事务计数
}
}
// 使用 TPS 中间件
app.use(tpsMiddleware);