性能测试之100万并发 vs 100万TPS

发布时间 2023-11-28 13:48:49作者: 秒秒开心

一、问题

性能测试时,有人说我要用jmeter压测,实现100万并发能做么?

 

二、回答

对于普通的系统来说,一般这种是将100万并发和100万TPS的概念搞混了。

分析如下:
根据公式:TPS=并发数/业务平均时间,如果系统要求业务平均响应时间不超过10毫秒的话,那么
100万并发的TPS就是:100万/10毫秒=100万/0.01秒=1亿,相当于这个业务1秒钟有1亿次请求,这个业务规模是相当大了,对于普通系统一般都没有这个规模的;
而100万TPS是可以说得过去的,意味着并发数=100万*10毫秒=100万* 0.01秒=1万,即并发是1万。

如果是用jmeter工具进行压测的话,jmeter用java写的,java中一个线程需要1M内存空间,启动jmeter时默认开辟1个G左右的空间

jmeter官网说,jmeter单机可以并发到500~1000左右,而在在windows环境下,还有句柄限制等问题,一般jmeter在windows下默认配置情况下,单机能压到200并发,电脑不卡死就很不错了。所以可以看到jmeter单机发压是有限的。

我们就用单机发压最大值1000并发来算,1万的并发,用jmeter工具发压的话,需要1万/1000=10台机器,加上一台主机,一共主从就需要11台机器。