配合网络工程师做压测的网络检测,顺便验证下nginx静态页面效率(还没接应用服务器,随便弄了个静态页面模拟json)。以下是各项参数:
nginx服务器
CPU:E5-2630 v3 @ 2.40GHz (8core 16th)
内存/硬盘:忽略不计,nginx也没开启缓存
软件:nginx-1.9.12
测试页面:index.html模拟json返回,就一行内容:{success: true}
网络:千M以太网
压测机器A(对等网直连):
4790K@4.0G JMETER配置10G内存。
压测机器B(走100M网络)
4790K@4.0G JMETER配置10G内存。
测试结果:
1. 当JMETER并发数设置为1000时,Throughput达到最高值,超过或低于这个数则下降。估计是因为线程太多上下文切换耗时过长反而导致Throughput下降;
2. 无论设置更多的线程,也无法提高Throughput,然后灵机一动想到可能是测试机瓶颈了,于是加多一台机器B测试。果然服务器CPU上去了,对测试A的结果没任何影响,说明进行大并发吞吐测试必需多台机器测试;
3. 两台机器的Throughput总计超过50000。而nginx的CPU才不到40%,网络总带宽还不到30M,应该还有很大潜力。下次再找机会拿10台机器使用JMeter的Agent模式来弄点“破坏性”测试看能把CPU整到100%不,总计的Throughput应该要突破10W(单页面啊亲,配置转发后要测秒杀的)
来几张截图:
测试机A
测试机B
服务器TOP(CENTOS 7):