跳到主要内容

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);