高負荷では、アプリケーションのパフォーマンスが大幅に低下します。これはメッセージ駆動のBeanベースの安らかなAPIです。毎秒27ヒットの平均負荷では、websphereアプリケーションサーバーの両方のノードで最大サーバーセッションを20に設定し、キュー接続ファクトリセッションプールを20に、JDBC接続プールを20に保っていました。タイムアウトなしで1秒で応答を得ることができました。アプリケーションのパフォーマンスチューニング
平均負荷の3倍、つまり80ヒット/秒のピーク負荷では、要求の半分以上がタイムアウトになり、平均応答時間が6秒に達するとアプリケーションのパフォーマンスが低下します。
各ノードの最大サーバーセッション数は40、キュー接続ファクトリセッションプール数は40、JDBC接続プール数は40になりました。HP Diagnosticsによるモニタリングでは、データベースサーバーのCPU使用率が非常に高くなり、すなわち98%まで。
私の質問は、データベースへの接続数が増えるとCPU使用率が急激に増加するか、起動されるクエリに依存しているかどうかです。また、JDBC接続プールの接続数を減らすことも、MDBインスタンスごとに1つの接続を行うことも可能です。
ピーク負荷でパフォーマンスを向上させる方法を教えてください。
ここにはさまざまな変数があります。ほとんどの場合、オンデマンドで接続を作成するコストは高価なので、常にプール接続を使用する必要があります。私はアプリケーションのプロファイリングをお勧めし、最初にアプリケーションの処理時間が長い場所を見つけることをお勧めします。外部DBについて考えてみると、DBソフトウェア、CPU、ディスクIO、および同じマシンのネットワークIOに依存しないXの特定のスループットが、DB全体として必要になることがあります。あなたのアプリケーションはうまくいくかもしれませんし、DBのスループットです。アプリケーションをDBに絞り込む必要がある場合とそうでない場合があります。 – Underbalanced
パフォーマンステストをお持ちの場合は、ピーク負荷で試してみて、さまざまな設定がスループットにどのように影響するかをご覧ください。 – Kayaman
@Kayaman私はあなたの意見を得ていませんでした。どの設定を参照していますか? – Neel