Asp.net core kestrel 服务器性能分析git
因近来发现neocli 使用asp.net core kestrel 服务器提供rpc调用,性能比较低。github
和之前作过测试差别比较大,故而再次测试。考虑到micheal提供的因素主要是http相应时间,故针对http响应时间增长两个测试web
先放代码,测试程序在服务器
https://github.com/lightszero/lightchainwebsocket
http请求直接返回asp.net
延迟1秒返回,可是用Task.Delay,让Task模型不会堵塞socket
延迟1秒返回,当前线程直接堵塞死性能
结果分析测试
测试均针对127.0.0.1进行,采用100个httpclient对象,从100个队列 分别请求测试123.net
获得的结论是
测试1 tps在 1000 到800浮动
测试2 tps 在 80 到100 浮动
测试3 tps 在 15 到 30 浮动
另外调整服务端ThreadPool.SetMaxThread 对测试结果干扰很小,忽略不计
分析此结论认为,kestrel 的处理能力对响应时间长的请求比较敏感。实际用于处理请求的线程估计是30左右,没有调整方法。
全部的RPC均受此影响,http响应时间越慢,总体处理能力就越差。
不管是sendraw,invokescript。
NEOCLI的rpc性能要提高,都须要比较大的改造
以后将尝试使用websocket 之类的长链接方案提高通信性能