2016-09-30 8 views
1

私はServiceFabricクラスタ上で、この警告メッセージに直面していますthroesholdプライマリレプリケーションキュー使用法:。ServiceFabric -

「プライマリレプリケーション・キュー使用量の95%に達しているが/最終しきい値80%最初にレプリケーション操作= 1818843を超えましたレプリケーション操作= 1826640 "

パーティションがこの状態になると、他のサービスからのそのすべての呼び出しは、メソッドの戻りを待っています。

私はこのメッセージの意味を検索しようとしましたが、成功しませんでした。 それはどういう意味ですか、何が原因でしょうか?

+0

このような状況につながる可能性のあるコードでは何が起こっていますか?国務長官に重い負担をかけていますか?信頼性の高いコレクションを使用していますか?私たちはいくつかの情報をもっと必要とします... –

+0

@RotemVaron "重い負荷"とは何か、周波数や状態のサイズを書いていますか? データは、100の送信者から3つのメッセージごとに1つの割合で別々のEventHubsから到着しているので、1秒あたり33回の平均でデータ(最後のメッセージのみ)を保持する必要があります。 サービスには10パーティションがあり、各パーティションの平均速度は約3.3 write/sです。 これが意味するところなら、I/O制限を推測できます。 – Lodeli

+0

ok、追加情報のためのtnx私は頻度を意味した。私はあなたのシステムを実行し、書き込みの数を実質的に減らすかどうか、あなたはまだこのエラーを取得するのだろうか?おそらく1つの送信者を使用するかもしれません... –

答えて

1

高可用性を実現するために、サービスファブリックのステートフルサービスは、設定されたターゲットレプリカに状態をレプリケートします。プライマリは書き込み操作を受け取るたびに、ローカルに適用し、それをセカンダリレプリカにも送信します。レプリカのクォーラムが操作に応答してからユーザーに返されるまで待機します。

操作がパーティション内のすべてのレプリカによってACKされると、操作はキューから削除されます。

セカンダリのACKが遅い場合、プライマリキューがいっぱいになり、書き込み操作がストールします。読み取り操作は影響を受けません。あなたのケースでは、レプリケーションキューはシーケンス番号1818843〜1826640の操作を持っています。

キューで非常に多くの操作が行われる理由は、プライマリまたはセカンダリでのディスクへの持続が遅いことです(ディスクが遅い、プライマリがキューからオペレーションを削除することを許可しない1つ以上のセカンダリからのメッセージ遅延を含むことができる。

+0

ありがとう、オアナ、最後にこのメッセージへの説明! – Lodeli

関連する問題