你的位置:首页 > Java教程

[Java教程]spider RPC性能测试报告


测试环境部署结构

spide_performance_network

测试用例

类 别说明
请求报文194字节({“systemId”:”PL”,”appVersion”:”qq.qq.qq”,”companyId”:”12″,”sourceIp”:”DESKTOP-NDOHT79″,”destIp”:”DESKTOP-NDOHT79″,”spiderOpts”:{},”companyName”:”机构1″,”createDate”:”20160101″,”companyType”:1})
响应报文178字节({“lists”:[{“nodeId”:100001,”nodeName”:”机构100001″,”companyId”:”1200″,”createDate”:”20160101″},{“nodeId”:100001,”nodeName”:”机构100001″,”companyId”:”1200″,”createDate”:”20160101″}]})。
客户端用例    @RequestMapping(value=”/1001.html”)

 

public @ResponseBody String t1001(Model model,HttpServletRequest request){

PlatformReq req = new PlatformReq().createDemo();

req.setCompanyId(“12”);

req.setSystemId(“PL”);

// 之所以每次HTTP请求调用5次spider请求,是因为一开始用单次跑,客户端很快就到cpu 100%,以至于spider NB一直压不到CPU 100%,故调整。

platformService.doQuery(req);

platformService.doQuery(req);

platformService.doQuery(req);

platformService.doQuery(req);

platformService.doQuery(req);

return JsonUtils.toJson(platformService.doQuery(req));

}

 

服务端用例@Service

 

public class PlatformServiceImpl implements PlatformService {

     public PlatformQuery doQuery(PlatformReq req) {

         //System.out.println(“收到spider请求: ” + req.toString());

         PlatformQuery query = new PlatformQuery();

         return query.createDemo();

    }

}

并发数200

 

测试结果

项目名称结果
客户端运行次数约1500万
Spider调用次数约7500万
平均响应时间90毫秒
客户端QPS2199次/秒
Spider NB/NP QPS约11000次/秒(2199*5=10995)(就NB服务器本身而言,因为用的是vmware且服务器配置低下,所以软中断所占CPU比较高)
Spider客户端负载95%~100%
Spider NB负载90%-95%
Spider NP负载60%左右
失败率<0.01%

注:在阿里云ECS 8C/8GB上测试时,TPS 大约在18000后,受制于阿里云ECS服务器单队列网卡环境软中断过高问题,导致cpu在50%之后便无法再上去。

原始数据

spider_jmeter_loader

spider_jmeter_result

spider_nb_loader

spider_client_loader

spider_np_loader