私はサービスファブリックに変換して以来、私が構築している小さなサービスファブリックアプリケーションを持っています。これは、起動時間が遅いことに悩まされていました。リリースの後だけでなく、非活動の15分。"Hibernating"サービスファブリックアプリケーション
私は、各サービスに行き、10秒ごとに小さなdb要求を出し、アプリケーションとefを実行し続けることを考えているプロジェクトを追加しました。これは私がタイムアウトを得るのを助け、最初の要求は5-15秒の範囲にあります。ウォーミングアップ後、要求は通常300msの範囲にあるので、非常に簡単な要求であり、サービス間の通信はあまりありません(合計4つのサービス)。
多くの検索の後、私は、ほとんどがビジュアルスタジオのものが好きではないように見えるプロファイラを見つけました。残念なことに、スレッドをたくさん待っていて、それが自分のコードに含まれていないように見えることを除けば、それほど大したことはありませんでした。私の外部リクエストはすべて非同期で待機します。また、要求に従うと、情報が欠落しているように思えました。
最初は、検索クエリを生成してから遅くなるかもしれないので、その部分を代わりに使用してその部分を移行しました。いくつかのef)しかし、それは何も実際に変更されませんでした。
このアプリケーションには、最新のサービスファブリック、dotnetコア、efコア、アプリケーションの洞察力のあるパッケージがすべて含まれています。トークンを検証するものを除くすべてのサービスはステートレスです。もちろん、リリースモードで構築されています。
私はそんなに遅い理由を見つけることができないので、ちょっと迷っています。昔は、これは通常、IISがアプリケーションをシャットダウンしたり、リサイクルしていたためでしたが、今はそこにないときには何ができますか?
これをAzureのクラスタに導入しているのですか、それともローカルマシンでこれを体験していますか? –
この問題はローカルでも、azureにもない3サーバークラスタに展開するとき – user1842278
トラフィックが負荷分散されていると仮定...サービスが解決するノードをいくつかログに記録します。要求1はノードA(15s応答)、ノードBは2(15s応答)、ノードAは3(300ms応答)、ノード4はノードC(15s応答)に行くことができます。私が何を得ているのか見てみましょうか? – Mardoxx