因为要写一个 slides,所以再次上网翻了下一些相关的资料,看到 TPS 的计算方法时,有点疑惑。
TPS 的意思是每秒处理的事务。
但是我看到一篇文章是这样的:
(同样是 20 个入口,如果并发数变成 100 的话,TPS 和响应时间会怎么样呢?
并发数到 100 的时候,就会出现堵车,堵车了平均每个车过去的时间就长了,把 100 个车按照 20 一份分成 5 份,第 5 份的等待时间就是最长的,从等待开始到这个车进去,实际花费了 5 秒,那 100 辆车都过去的响应时间就是(5+4+3+2+1)/5=3,平均的 TPS 就是(20/1+20/2+20/3+20/4+20/5)/5=9.13)
但我的理解是这样,这里 100 个车,总得通过时间不应该是最后一排车通过的时间,即 5 秒吗?那么 TPS 不应该是 100/5=20 吗?
另外关于并发,RT 和 TPS 的关系,网上很容易看到是写着 TPS=并发数/平均响应时间。
但是根据理发店模型来看的话,这个公式好像并不成立啊...比如 1 个来理发,用时一小时,那么 TPS 为 1,并发为 1,响应时间 1.如果三个来理发,响应时间 1,并发 3(最优),TPS,是 3. 如果是 6 个用户来理发,此时进入 heavy load 区域,此时 throughput 应该是基本稳定不再大幅增长,长时间运行时必然会导致部分用户离开(出错),但是此时如果按照 TPS 的算法的话,并发数为 6,平均响应时间为 1.5,那么 TPS 应该是 4,好像并不符合理发店模型啊?