spider RPC性能測試報告,spiderrpc性能測試
測試環境部署結構
測試用例
類 別
說明
請求報文
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毫秒
客戶端QPS
2199次/秒
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%之後便無法再上去,具體可參考http://www.cnblogs.com/zhjh256/p/6020609.html。
原始數據