2

私は、ビジネス ユーザーがデータ操作と処理のための多数のルールを定義するアプリケーションの構築を任されています (たとえば、1 つの数値を取得し、ルールで指定された条件に基づいて選択された多数のレコード間で均等に分割します)。 .

毎月、定義されたルールに従って約 50 万件のレコードを処理するために、バッチ アプリケーションを実行する必要があります。各レコードには約 100 のフィールドがあります。環境は、サード パーティのルール エンジンを使用した .NET、C#、および SQL サーバーです。

8 時間から 10 時間程度の時間枠内でレコードを処理することが要件である場合、どのような種類のハードウェアが最適かを定義および/または確認する方法を提案していただけますか。ユーザーがハードウェアのコストに応じて期間を延長または短縮したい場合、仕様はどのように変化しますか?

前もって感謝します

アビー

4

3 に答える 3

1

アプリケーションを作成してプロファイリングしますか?

于 2009-11-12T18:05:05.327 に答える
1

ステップ 0. アプリケーションを作成します。「紙の」仕様から説明しているようなマルチコンピューターシステムの実際のパフォーマンスを伝えることは不可能です...試して、最大のスローダウンを保持するものを確認する必要があります...これは伝統的に物理IOですが、常にではない...

ステップ 1. 隔離された環境でデータのサンプル セットを使用してプロファイリングします。これはグロスメトリックです。時間がかかるものを分離しようとしているのではなく、ルールの実行にかかる全体の時間を測定しているだけです。

隔離された環境とはどういう意味ですか? マシン間で同じ種類のネットワーク ハードウェアを使用したいが、そのネットワーク セグメントで他のトラフィックを許可しない。この時点であまりにも多くの変数が導入されます。

プロファイルとはどういう意味ですか? 現在のハードウェアで、次の状況で完了するまでにかかる時間を測定します。 データ生成を自動化するプログラムを作成します。

シナリオ 1. 可能な限り単純な 1,000 のルール。

シナリオ 2. ユーザーが入力することを合理的に期待できる最も複雑な 1,000 のルール。

シナリオ 3 & 4. 10,000 最も単純で最も複雑。

シナリオ 5 & 6. 25,000 最も単純なものと最も複雑なもの

シナリオ 7 & 8. 50,000 最も単純で最も複雑

シナリオ 9 & 10. 100,000 最も単純で最も複雑

ステップ 2. データを分析します。

完了時間に傾向があるかどうかを確認します。それらがルールの量に厳密に結びついているように見えるのか、それとも複雑さも考慮に入れているのかを理解してください...私はそうなると思います.

200,000 および 500,000 のルールがある場合に予想される所要時間を示す傾向線を作成します。200,000 で別の実行を実行します。トレンド ラインが正しいかどうかを確認し、正しくない場合は、トレンド ラインの作成方法を修正します。

ステップ 3. システムが 20,000 のルール セットを処理するときに、データベースとネットワークのアクティビティを測定します。より多くのルールでより多くのアクティビティが発生しているかどうかを確認します。その場合、SQL サーバーとの間のスループットを高速化すればするほど、実行が高速化されます。

これらが「比較的低い」場合、CPU と RAM の速度は、要求されたマシンの仕様を強化する必要がある可能性があります...

もちろん、このすべてのテストが可能な限り強力なサーバー ハードウェアを購入するよりも雇用主にコストがかかる場合は、テストに費やされた時間のコストと、最高のサーバーを購入してそれで完了し、アプリを微調整するだけのコストを比較してください。パフォーマンスを向上させるために制御する SQL...

于 2009-12-15T02:14:40.827 に答える
0

このシステムが初めてではない場合は、次のことを検討できます。

  • 以前のプロジェクトのハードウェア要件を (追加の評価後に) 再利用する
  • 既存のアプリケーションのワークロードとハードウェア構成に基づいてハードウェア要件を評価する

そうではなく、パフォーマンス要件が非常に重要な場合は、たとえば 10 個のルールを実装したプロトタイプを作成するのが最善の方法です。プロトタイプを使用してデータセットを処理し、完全なルール セットを推定します。この情報に基づいて、初期のパフォーマンスとハードウェア要件を導き出すことができるはずです。次に、処理されるデータ量の計画的な増加、スケーラビリティの要件、および冗長性を考慮して、これらの仕様を微調整できます。

于 2009-12-11T05:31:40.360 に答える