本番環境でパフォーマンスの問題が発生しました。
アクティブセッションが25を超えると、CPUの使用率が100%に達し、停止するまでに長い時間がかかることがわかりました。
私たちが持っている環境:
製品Microsoft SQL Server Enterprise Edition 9.3(sp2)
CPU 2(Xeon 2.13)
メモリ7G
セッション詳細のスナップショット1
アクティブセッション 25
アクティブなトランザクション 496
アイドルセッション 289
ブロックされたトランザクション29
セッション詳細2のスナップショット
アクティブセッション 59
アクティブトランザクション 885
アイドルセッション 267
ブロックされたトランザクション49
知りたい:
2CPUが25のアクティブセッション(500のアクティブトランザクション)を適切に処理できるかどうか。PS:同時実行要求なしで、5つのテーブルを読み書きする1つのトランザクションがアプリケーションレベルで約1秒かかることをテストしています。
ブロックされたトランザクションがより多くのCPU使用率をとるかどうか。PS:ブロックされたトランザクションは、主に2つのテーブルのロックが原因です。
解決策は何ですか:CPUを追加するか、アプリケーション(java / hibernate)を調整して、このトランザクションを短縮し、テーブルのブロックを減らしますか?