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 之類的長鏈接方案提高通信性能