2016-09-23 4 views
0

私はしばらくの間活動していない私のステートフルなサービスの速度が遅いです。ある時間の非アクティブ後の最初の呼び出しは非常に遅い(10 +秒)ようです。その後の呼び出しでもこの問題は発生しません。これは、サービスが非アクティブ化して目を覚ます典型的なケースです。信頼できるサービスが非アクティブになるようです

ステートフルなアクターがこれを行うことはわかっていますが、これはステートフルなサービスで発生しています。これは、私の開発者とテストクラスターで注目されています。ここでは、アクティビティは疎で一貫性がありません。開示のために、これらの環境は可能な限り低いリソース(A0 vms、ブロンズ層の可用性)で実行されています。それにもかかわらず、私はステートフルなサービスが常に稼働していると考えていました。

どうすれば暖かく活性化されますか?また、実際に起こっていることをどのように診断するのですか?

答えて

0

サービスファブリックは、非アクティブ化またはサービスをスリープ状態にすることに関して何も行いません。のは、Windows上でC#で書かれた信頼性の高いサービスの実行中の名前付きインスタンスが本当に何であるかを見てみましょう:

  • .NETオブジェクトのインスタンスは、プロセス内で実行されています。

これだけです。サービスファブリックは、アイドル状態(サービスファブリックにそのような定義がないこと)であれば、プロセスをシャットダウンしません。オブジェクトインスタンスは、ガーベジコレクションされないように強くルートされます。

実際、.NETアプリケーションに適用されるのと同じ要素がすべてここに適用されます。

アプリケーションについて何も知らなくても、A0 VMはおそらく責任があります。 1 GB未満のメモリがあるため、ページングが問題になる可能性があります。あなたは共有CPUコアの一部を持っているので、それは問題かもしれません。

A0を使用することは決しておすすめしません。きわめて制限された電力がサービスに影響する可能性があるだけでなく、サービスを生き生きと健康に保つサービスファブリックシステムサービスにも影響する可能性があるためです。

+0

私はそれらをA1にバンプしてみるつもりですが、それは開発者とテストがほとんど何も必要ないのであまりにも悪いです。 1GBのメモリであっても、現在の状態のこれらのサービスは、それぞれに約5個のレコードを含む信頼できる辞書を保持しているだけです。彼らがすべてこのような行動を示すように思われるのは奇妙です。それはASP.NET Core Web APIと関係がありますか?同じクラスタ内で実行され、クライアントとサービスの間のアプリケーションファサードとして機能します。 –

+0

それは可能です。 ASP.NETコアではどのWebホストを使用していますか? KestrelまたはWebListener? –

+0

ASP.NETコアとKestrelミドルウェア。 –

関連する問題