web-dev-qa-db-ja.com

Amazon RDS MySQLインスタンスのパフォーマンスが非常に遅い

Amazon EC2(シンガポール地域)でウェブサイトを公開し、MySQL RDSインスタンスをデータストレージに使用しました。パフォーマンスを除くすべてが非常にうまく機能しています。

私のすべてのクエリ、特にselectステートメントのパフォーマンスは非常に遅いようです。ローカルPCでこの問題を確認すると、非常にうまく機能しています。しかし、RDSインスタンスからデータを取得しようとすると、非常に遅くなります。一部の選択ステートメントでは、データをフェッチするのに2〜3秒かかります。

すべてのテーブルインデックスを適切に調整し、必要に応じて正規化/非正規化しています。 RDSカスタムパラメータグループに必要なすべての設定を行いました(例max_connectionbufferなど)。何かが欠けているかどうかはわかりませんが、それは私にとってはうまくいきませんでした-パフォーマンスは向上しませんでした。

だから、誰かがこの問題で私を助けてくれますか?

25
Manish Sapkal

何らかの理由で、MySQLクエリキャッシュがRDSでデフォルトでOFFになっていることに注意してください。今週、私たちは苦労していることを学びました。

これは最初のクエリのパフォーマンスには役立ちませんが、一般的に速度を上げることができます。

クエリキャッシュを再度有効にするには:

  1. RDSコンソールにログインします
  2. RDSインスタンスをクリックして詳細を表示します
  3. データベースパラメータグループの編集
  4. 必ず両方を設定してくださいquery_cache_sizeおよびquery_cache_type

(免責事項:私はDBAではないため、ここで不足していることがあるかもしれません)

29
DOOManiac

遅延を最小限に抑えるために、RDSとEC2インスタンスを同じリージョンだけでなく同じアベイラビリティゾーンにも配置することが重要です。

アイルランドでEC2でホストされているAPIを使用し、別のプロジェクト用にセットアップした米国バージニア州のMySQLクラスターにデータベースを移動し、すべてのSQLクエリのラウンドトリップによりAPIが使用できなくなりました。

8
Roovian

私にとっては、MySQLとは何の関係もなく、むしろ私がt2.medium。問題は、DBの負荷が高すぎてバランスが低下し続け、最終的に必要な場所で1時間ごとにクレジットがはるかに少なくなるため、CPUクレジットが不足したことです。

これは、RDS CloudWatchのCPU Credit Usageで見たものです。

enter image description here

同じ問題がある場合は、別のインスタンスに切り替えるときがあります。インスタンスタイプのリストは次のとおりです。

https://aws.Amazon.com/rds/instance-types/

お役に立てれば。

4
radtek

RDS MySQLのパフォーマンスは、システムの読み取り率が高いと仮定すると、次の方法で向上できます。

  1. より大きなインスタンスタイプを使用すると、NW帯域幅が向上します。例AWS Quadruple EXLには1,000 Mbpsの帯域幅が付属しています。
  2. PIOPSストレージを使用すると、MySQL DBから16KBの12,500 IOPSを抽出できます
  3. 大量の読み取りが実行される場合は、1つ以上のリードレプリカを追加して、読み取りパフォーマンスを向上させます
  4. 次のような標準プラクティスを適用します:クエリの調整、インデックスの適用など
2
Harish Ganesan

最初に、これらのクエリを調べることを強くお勧めします

完全なプロセスリストを表示

詳細については SHOW FULL PROCESSLIST をご覧ください。

これにより、各クエリにかかる時間が表示されます。

その後、使用することができます

説明する

詳しくは [〜#〜] explain [〜#〜] をご覧ください。

これにより、クエリの機能強化が必要な場合に表示されます

2
Hiyasat

プロファイリングを使用すると、クエリに時間がかかっている場所を確認できます。以下のクエリを使用します。

  1. プロファイリングを設定する= 1
  2. 選択クエリを実行する
  3. プロフィールを表示

これにより、クエリのステータスと、クエリが時間を費やしている場所がわかります。プロファイリングによって返されるすべての時間の合計がクエリの実際の実行時間よりも短い場合、ネットワーク帯域幅などの他の要因が原因である可能性があります。

0
user7562197