前言
通常我们在压测的时候,都会有一个指标去衡量,比如搜索商品接口,我们预期TPS需要达到多少。
最理想的情况就是开发/产品/项目经理提前确定好了性能指标,但是通常大多数公司对于性能不是很理解,可能你问产品经理,产品经理说TPS是什么。那么这种情况下,我们就需要根据实际情况进行分析,确认性能指标。
明确压测项目类型
一般我们压测的项目会分为两类,一种是老项目,一个是新项目。像我们公司的项目已经上线运行了很长一段时间了,那么在生产环境中,会生成一些历史数据,并且线上也业务监控系统,定期监控各个业务模块核心接口的调用量、平均耗时等数据。那么我们可以去分析TOP前10的接口(这个根据公司实际情况而定),这些接口在过去一周或者一个月内,接口调用量最高的那一天,找到他的峰值。
比如我商品搜索的接口,接口调用量最高的时间点(分钟级别)如1:30分的时候,调用量为10000,那么我们可以根据根据这个峰值去计算他的TPS。 10000/60 =166
, 因此我们可以确定这个接口TPS达到166即可满足。
那有些朋友会说,我们公司没有业务监控系统,这种怎么去评估呢?方法有很多,比如我们通过中间件的日志,每个中间件都有访问日志。比如 Nginx 的 access.log,该日志中详情记录了每个HTTP请求的访问时间、url、响应时间、响应状态码。