0

Golangで書かれた Tendermintというツールがあります。トランザクションを処理し、ブロックを作成します (詳細は意図的に省略されています)。トランザクションは、WebSocket サーバーを介して送信できます。ブロックは毎秒 ~ 作成されるように構成されています。

現在、2 つ以上の WS 接続を開き、アプリケーションが処理できる以上のトランザクションを定期的に送信すると、Tendermint が動かなくなります。

長い休止

この間、ブロックは作成されませんが、WebSocket IO の処理にかなりの時間が費やされます。

CPU プロファイル

これらの一時停止の正確な性質をまだ理解していません。ここに誰かが知っているか、適切な質問をすることができますか? また、IOを制限する方法は何ですか? 各接続を調整しますか?

注: WebSocketにはhttps://github.com/gorilla/websocketを使用しています。当社の WS サーバーはここにあります。お時間をいただきありがとうございます!

UPD 1: WS サーバーで応答をバッチ処理することで一時停止を平準化することができました ( https://github.com/tendermint/tendermint/issues/3905#issuecomment-684860429を参照) 。

4

0 に答える 0