0

EC2 には複数のサーバーと複数の DB インスタンスがあります。サーバーの 1 つにはメイン DB (マスター DB) がありますが、他のサーバーにはトランザクション DB しかありません。すべてを接続するためにSQLリンクサーバーを使用しています。

最初は、インフラストラクチャに問題はありませんでした。しかし、データ負荷が増加するにつれて、通常の選択クエリでもタイムアウト期限切れエラーが発生することがよくあります。

すべてのプロセスに対応しているわけではありません。特定のサーバーで 500 個のプロセスが実行されている場合、少なくとも 200 個のプロセスがこのタイムアウト期限切れエラーをスローしています。

最近、すべてのサーバーを VPC に移動しました。

ノート:

マスター DB のみがどのトランザクション DB がそれぞれのトランザクション要求に接続されているかを知っているため、すべてのクエリはマスター DB からのみ実行されます。EC2 インスタンスはすべて同じリージョンにあります。

私の問題の解決策はありますか (タイムアウト エラー例外)。あなたの提案を手伝ってください。これは実際、ビジネスに影響を与える重大な問題になっています。

エラー メッセージ:

タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

4

1 に答える 1

0

以前は正常に機能していましたが、負荷が増加すると失敗し始めたため、リソースが不足しているように聞こえます (主にハードウェア)。次の 2 つのことを行う必要があります。

1) より多くのハードウェアを購入します。2) クエリを調整して、より少ない (ハードウェア) でより多くの作業を行う。

まず、(たぶん)安いです。DB をチューニングするには、学習に多くの時間がかかり、学習した内容をテストする必要があります。困難な道を歩み、クエリ/分離レベル/スキーマなどを最適化することをお勧めします.

于 2013-12-19T16:48:07.800 に答える