2016-07-05 8 views
2

アジアサービスファブリックのステートフルアクターシステムの正しいアクターサイズを決定するには、どのような方法論を適用する必要がありますか?極端に運ばアズールサービスファブリックアーチュアとネットワークのサイズ変更方法

私はを持っている可能性が理論的には正確に1文字列を格納するために俳優を使っすべての状態またはその逆を持って、正確に1人の俳優を持っています。明らかにこれらの両方が間違っています。単一の俳優のために

は、データのシリアル化された大きさを測定した場合にどのようなキロバイトの量は小さいと考えられると大みなされるであろうどのように多くのメガバイト?たとえば、10KBが小さく、10MBが大きいとしますか?

上記の答えから構築すると、俳優ネットワークは「小さな」俳優に傷ついていると仮定します。小規模ネットワークと大規模ネットワークの構成例えば、もう一度、100万人が小さく、10億人が大規模な人ですか?

私はこれらの測定に何らかの引用を強く推奨します。しかし、私はAzureのドキュメントから特定のものを入手することができませんでした。特定の情報がまだ公開されていない場合は、特にASF以外のアクターネットワークの実装を扱う情報源を受け入れることになります。

+0

ここで「正しいサイズ」とは何ですか?実際のアクタのサイズはキロバイトですか? – cassandrad

+0

@カサンドラッドについては、例えば、10KBと10MBの大規模なものですか?ネットワーク全体に関しては、たとえばもう一度100万人、10億人が大規模な人ですか? –

+0

あなたが求めているようです俳優に保存するデータ量に関する「ベストプラクティス」について、ある特定の答えを与えることは非常に幅広いです。あなたの環境に格納されているデータの量が異なる多くのアクターの使用を測定できないのはなぜですか? – cassandrad

答えて

2

一般に、アクターの状態の生のサイズは、そのアクセスの範囲とパターンよりも面白くありません。あなたのアクターを、他のコンポーネントがさまざまな部分にアクセスする必要のある大量の状態の「マネージャー」として使用している場合、複数の呼び出し元が試みるアクターモデルのシングルスレッドの性質によって、要求を並行して行う。一方、自然にカプセル化されたアクタがあり、タスクを実行するために大量の状態を利用する必要がある場合は、一連のネットワーク要求を作成するのではなく、その状態をすべてローカルに保存すると便利です。

非常に粗い経験則をお探しの場合は、ほとんどのアクターの状態をキロバイトで測定すると思います。メガバイトのしきい値を超えている場合は、デザインを再検討して、あなたの俳優がマネージャやミニデータベースの役割を果たしていないことを確認する価値があります。

+0

シリアライズされたデータサイズに関する私の前提を確認しました。キロバイト(持続)はスイートスポットです。システム内のアクターの数はどうですか?多分アクターあたり5KBから25KB(1つのトランザクション境界で更新されるかなり連続したデータブロック)と仮定してください。 –

+0

アクターサービスはパーティション化されているため、その数にはそのようなスイートスポットはありません。ハードウェアの限界に達しているアクターの数が多い場合は、クラスタにマシンを追加するだけで、サービスファブリックが再調整されます。 –

+0

「現時点ではサーバーを増やす必要があるとき」と言うために、どのようなメトリックを適用できるかというキャパシティプランニングをどのように扱うのですか(標準的なサーバーのトリプレットセットを超えて増やす)。反動的ではなく、クラスタの負荷が過大になっているので、今すぐアップグレードする必要があります。私はいつも今の今の反応を排除する計画を立てようとしています。 –

関連する問題