この記事では、プラットフォームのパフォーマンスをどのようにテストしたかを説明します 。
多くの最適化を実装したため、システムの新しいバージョンの開発の最初からパフォーマンスをテストする予定でした。 しかし、彼らは忙しすぎたために延期し、ある日、Oracle Exadata Database Machine X2-2でのテストに同意することができたと知らせてくれました。
これがサーバーです 刺激する。
マシンは非常に強力であるため、テストではすべてを使用する必要はありませんでした。 実際、以前のバージョンよりもアプリケーションの生産性が向上したかどうかという質問に興味がありました。
以前のバージョンは、クライアントの1つで機能し、機能しました。そのパラメーター(ユーザー数、倉庫内の商品、倉庫、オフィス、キャッシュデスクなど)をベースとして使用しました。 テストされた構成では、プロセスはこのクライアントのプロセスをほぼ完全に繰り返しました(一部の特定の機能を除く)。したがって、どのユーザーロールがメインの負荷を生成するかに関する統計を取りました。
負荷の下では、ドキュメントの作成、ディレクトリ内のレコード、ディレクトリ内の検索などのアクティビティを意味します。 役割のリストは驚くことではありませんでしたが、直感をチェックするための正式な手順を実行する必要があると考えられていました。 変更の履歴に関する役割を検討し、FGA(非常に便利な機能で、新しいプラットフォームでアクセスを共有するために使用しました)を使用します-再び、機能の主な目的への快適な追加です。
これらの役割は次のとおりです。
- 購買部長
- 倉庫係
- 在庫補充依頼の作成
- 店主移動セット
- 営業部長
- キャッシャー
- 店主在庫注文セット
- 倉庫間輸送を送受信する店主
もちろん、すべての種類のレポートのカウントに1日を費やす多くのアナリストや部門長、部門がありますが、これらのレポートはスタンバイサーバーで計算され、プライマリに負荷を作成しないため、このような負荷をスクリプトから除外することにしました。
実際の状況では、注文の大部分は人ではなくサイトを介して作成され、同時に少しの操作が発生します。 彼らは最高評価が重要であると判断し、サイトのスクリプトを個別にモデル化しませんでした。
対応する数の倉庫、オフィス、商品、管理者、キャッシュデスク、その他のオブジェクトを生成し、商品の販売の分布を構築しました(個数で数えた場合、分布は80/20の式とほぼ正確に一致しました-売上の80%は品揃えの20%によって行われました)。
トランザクションの負荷を正確に再現することが重要でした-ERPシステムのパフォーマンスとそのスケーラビリティは、ブロッキングによってのみ制限されます。 ビジネスプロセスは、ブロッキングを拒否できないように策定されており、したがって、唯一の方法はブロッキング時間を短縮することです。 このタスクにどのように対処し、このテストの目標であったかを判断します。
ロールは、仮想ユーザーごとに1つのスレッドを実行することにより、アプリケーションサーバー内でエミュレートされました。
そもそも、実際のプロファイルと比較するために、4000人のユーザーの作業を確認する必要がありました。 Oracle Databaseサーバーは、4コアおよび8ギガバイトのメモリ上の仮想環境で起動されました。 アプリケーションサーバーは、仮想マシンと同じサーバー上で実行されました。2つの部分にそれぞれ2つのコアと2ギガバイトのメモリがありました。 嬉しいことに、サーバーは簡単に耐えられ、実行時間は1秒以内で、CPU負荷は約60-70%、50%IOでした。 ロックはほとんどなく、鉄は非常に効率的に使用されていました。
示された結果は、あらゆる点で実際のクライアントのプロファイルを超えていました。
さらに、マシン全体が自由に使える状態になったため、1回の実行で2000ユーザーずつ負荷を増やすことにしました(1回の実行で2〜3時間かかり、2回の実行で一晩中)。
1つのアプリケーションサーバー(2コア、2 GBのメモリ)が3,000ユーザーに耐えられることを経験的に確立しました。
その結果、18,000ユーザーという数字に達しました。 20,000人のユーザーで起動する試みが行われましたが、結果は不安定でした。 不安定性は確率論的シナリオによって説明され、その結果、不安定点が出現すると、ヒットするとシステムがブロック状態に陥り、そこから終了できなくなります。 ユーザー数の増加に伴い、ユーザープロファイルとその他の周波数特性(オフィス、商品、倉庫、キャッシュデスクなどの数)を維持していることに注意してください。 つまり 仮想会社は、同じ製品を新しいオフィスを開かずに同じオフィスで取引しました! 繰り返しますが、「上から」の本当の評価は私たちにとって重要だったので、指から周波数特性を上げる方法を吸い出し始めませんでした。 18,000人のユーザー用のクライアントができたらすぐに、彼のプロファイルを削除し、ユーザーの増加を試みます。
結論として
この記事では、テストプロセスの叙情的な説明を行います。 正式な完全な説明は、当社のWebサイトでご覧いただけます。 Oracle Exadata Database Machine X5-2の新しいバージョンが最近登場しました。テストする予定です。 パフォーマンスを向上させるには、インメモリデータベース、バルクストレージなどの機能を使用してみてください。
結果についてはブログで説明します。 切り替えないでください。