![MySQL / Web サーバーのボトルネック](https://rvso.com/image/768936/MySQL%20%2F%20Web%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%83%9C%E3%83%88%E3%83%AB%E3%83%8D%E3%83%83%E3%82%AF.png)
MySQL / Web サーバーのボトルネックを特定しようとしています。
私は 3 台のサーバーを持っています。Nginx を実行する Web サーバー、Wordpress DB を備えたリモート MySQL サーバー、そしてデータを保存する別のリモート MySQL サーバーです。
私が見つけようとしているボトルネックは、データを保存している 2 番目の MySQL サーバーと Web サーバーの間にあります。3 つの DataTables (3 つの個別のクエリ) があるページがあります。すべてを実行すると、読み込みが非常に遅くなります。ゲートウェイのタイムアウト エラーが発生することもあります。
クエリ自体が問題だとは思いません。DataGrip では、3 つとも平均 200 ~ 500 ミリ秒です。プラグインはインデックスを利用できないと聞いているため、現在クエリはインデックス化されていませんが、とにかく試してみるかもしれません。
ハードウェアとセットアップ:
私の MySQL サーバーは AWS R6G.Large、2 コア、16 GB RAM、150 IOPS の SSD、128 MB スループットです。innodb_page_size は 32、buffer_pool_size は 11000M、innodb_buffer_pool_instances は 10、innodb_log_file_size は 1G です。Web サーバーは AWS C6G.Xlarge、4 コア、8 GB RAM、150 IOPS の SSD、128 MB スループットです。FPM と Opcache を使用します。
両方のサーバーで TOP を使用して監視を試みましたが、正直なところ、情報を適切に活用するための知識があるかどうかわかりません。
何らかの方法で、それがハードウェアなのかソフトウェアなのかを判断したいのですが、ハードウェアである場合、切り分ける方法はありますか? 実際にそれが問題である場合、ハードウェアを増やすことに何の問題もありません。
Stack / ServerFault でこれが許可されているかどうかはわかりませんが、両方のサーバーで TOP を実行して画面を録画すると、何が起こっているのかが簡単にわかると思います。公開 Google Drive にビデオを追加しました。ビデオには、MySQL サーバー (上部) と Web サーバー (下部の Nginx) の両方が含まれています。私が行ったことは、ページをロードし (ビデオの 3 秒のマーク)、結果を録画することでした。ビデオの時間は 1:05 で、最後のテーブルが表示されるまでにかかった時間です。ビデオは、サイトがメンテナンス中だったときに録画されたため、他の IP / トラフィックはどちらのサーバーにも到達できませんでした。
私の Google ドライブ リンク:
https://drive.google.com/drive/folders/1NtdE1Z4875i1Xx2Wy2EXGgknt9yuY1IN?usp=sharing
誰かが助けてくれるといいですね。
エイミー