顧客は、クラスタ化された Web アプリケーション サーバーをかなりの負荷の下で実行しています。彼は、まだ実装されていない今後のアプリケーションが現在のセットアップで管理できるかどうかを知りたがっています。既存の要件仕様 (または機能設計仕様) に基づいて、コンセプト状態のアプリケーションのパフォーマンスへの影響を予測するための確立された方法はありますか? 最優先事項は、CPU リソースへの影響を予測することです。
まったく正確な結果を得ることができますか?
顧客は、クラスタ化された Web アプリケーション サーバーをかなりの負荷の下で実行しています。彼は、まだ実装されていない今後のアプリケーションが現在のセットアップで管理できるかどうかを知りたがっています。既存の要件仕様 (または機能設計仕様) に基づいて、コンセプト状態のアプリケーションのパフォーマンスへの影響を予測するための確立された方法はありますか? 最優先事項は、CPU リソースへの影響を予測することです。
まったく正確な結果を得ることができますか?
標準的な答えはノーだと思います。ターゲット アーキテクチャにデプロイされている実際のアプリケーションを常にベンチマークする必要があります。
なんで?ソフトウェアとソフトウェア開発は予測できません。そして、システムはさらに予測不可能です。
要件を理解して詳細な分析を行ったとしても、次の場合はどうなるでしょうか。
これらの懸念は理論的なものではありません。もしそうなら、ソフトウェアの開発は些細なことであり、プロジェクトは常に時間通りに予算内で提供されます。
ただし、私が個人的に使用した、適用できるヒューリスティックがいくつかあります。まず、現在のシステムを十分に理解する必要があります。
分析を実行して、CPU、RAM、ディスク、およびネットワークに関して、小規模、中規模、および大規模の「平均」コストを取得します。これは次の形式になります。
この分析から、どのくらいのヘッドルームがあるかを理解する必要があります - CPU は確かですが、十分な RAM、ネットワーク、およびディスク容量があることを確認してください。たとえば、小さなトランザクションに必要な CPU は、1 秒あたりの小さなトランザクションの数に小さなトランザクションの CPU コストを掛けた値です。中程度のトランザクションと大規模なトランザクションの CPU コストを追加すると、CPU バジェットが得られます。
DBA が関与していることを確認してください。DB でも同じことを行う必要があります。
次に、今後のアプリケーションを分析する必要があります。
個人的には、あなたは予測不可能なことを予測するよう求められています - あなたの名前と評判を賭けて. それが収まると言うなら、あなたは大規模なソフトウェア開発プロジェクトのリスクを負っています. はいと言うようにプレッシャーをかけられている場合は、あなたの名前だけでなく、他の多くの人の名前が関係していることを確認する必要があります。また、それらの名前はすべて、実行するかしないかの決定に表示される必要があります。これにより、すべての要因が考慮され、分析が適切であることが保証される可能性が高くなるだけでなく、プロジェクトの成功に個人的に一致する多くの関係者がプロジェクトに関与することも保証されます.