背景
公司安全网关需要测试单机状态下的最大并发,使用ab测试可以达到2W并发,但是为了测试结果的严谨性,需要使用loadrunner进行测试。架构很简单,就是一个安全网关服务器,一个Nginx web服务器,网关做数据转发。
测试方案
因为要求测试并发数2W比较高,所以选用了Linux版本的负载机,Linux版本的性能更强,可以加的并发数比Windows版本要高不少。最开始给了3台虚拟机,4核4G的配置,测试过程中发现负载机CPU到1W并发就产生了瓶颈。于是最后加到了5台负载机,12核4G的配置,但是这里要说一点的是,给的负载机都是虚拟机,CPU都是虚拟出来的,和实体机还是有区别。
网络的话最好是在内网进行测试,内网是千兆带宽,尽量避免网络延迟产生的数据误差。
这次是想测试网关的性能,所以Nginx服务器只是做辅助的,为了避免误差,应该对Nginx服务器进行调优,让Nginx支持更高的并发压力。
测试脚本
脚本使用loadrunner的web协议进行编写,因为安全网关使用的是https,所以脚本需要加入web_set_sockets_option进行SSL版本的设置,同时为了保证发送和接收的数据一致,所以对返回的数据body进行了收集,通过数据长度是否正确来判断事务是否成功。
测试场景
负载机为Linux版本,所以需要设置dont use RS,并且把单负载机的并发数限制改成1W,不然一台负载机加到5000并发就不会再增加用户了。
一共5台负载机,所以需要添加5个场景组,每个场景组一台负载机,关闭日志收集,忽略思考时间,三个超时时间设为最大。
运行场景设置为慢增长方式,每秒钟加100个用户,一共运行30分钟,每秒钟50个用户结束。
测试结果
加到2W并发之后,网关的CPU达到了90%左右,已经达到极限,再加就没有意义了,故该配置下,网关最大支持并发为2W。一般中小型企业最多最多5K的并发,大家这里要理解一下并发数的概率,它不同于在线用户数和注册用户数。
领取专属 10元无门槛券
私享最新 技术干货