MySQL/Web 伺服器瓶頸

MySQL/Web 伺服器瓶頸

我正在嘗試確定 MySQL/Web 伺服器瓶頸。

我有三台伺服器。一個運行 Nginx 的 Web 伺服器、一個帶有我的 Wordpress DB 的遠端 MySQL 伺服器和另一個儲存我們資料的遠端 MySQL 伺服器。

我試圖找到的瓶頸是在儲存資料的第二台 MySQL 伺服器和 Web 伺服器之間。我們有一個頁面,上面有三個資料表(三個單獨的查詢)。如果全部加載的話,加載速度非常慢。有時我會收到網關逾時錯誤。

我認為查詢本身不是問題。從 DataGrip 來看,這三個平均值都在 200-500 毫秒之間。目前,查詢未建立索引,因為我被告知該插件無法利用索引,但無論如何我都可以嘗試。

硬體和設定:

我的 MySQL 伺服器是 AWS R6G.Large,2 核心和 16GB RAM,SSD 為 150 IOPS 和 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 核心和 8GB 記憶體、150 IOPS 和 120 IOPS 和 8GB 記憶體、150 IOPS 和 SSD 的 SSD。使用 FPM 和 Opcache。

我嘗試過在兩台伺服器上使用 TOP 進行監控,但說實話,我不確定我是否具備正確利用這些資訊的知識。

我真的很想確定它是硬體還是軟體,如果是硬件,有沒有辦法隔離?如果這確實是問題所在,那麼增加硬體我沒有問題。

我不確定 Stack / ServerFault 上是否允許這樣做,但我認為如果我在兩台伺服器上運行 TOP 時記錄螢幕,可能會更容易知道發生了什麼。我為我的公用 Google 雲端硬碟添加了一個影片。該影片包含我的 MySQL 伺服器(頂部)和 Web 伺服器(Nginx,底部)。我所做的就是加載頁面(影片中的 3 秒標記)並記錄結果。影片時間為 1 分 05 秒,即最後一張桌子出現的時間。該影片是在我的網站維護期間錄製的,因此沒有其他 IP/流量可以到達任一伺服器。

我的谷歌驅動器連結:

https://drive.google.com/drive/folders/1NtdE1Z4875i1Xx2Wy2EXGgknt9yuY1IN?usp=sharing

希望有人可以提供幫助。

艾米

相關內容