ฉันกำลังพยายามหาปัญหาคอขวดของเซิร์ฟเวอร์ MySQL / เว็บ
ฉันมีสามเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์ที่ใช้ Nginx เซิร์ฟเวอร์ MySQL ระยะไกลพร้อม Wordpress DB ของฉัน และเซิร์ฟเวอร์ MySQL ระยะไกลอีกเครื่องที่เก็บข้อมูลของเรา
คอขวดที่ฉันพยายามค้นหาคือระหว่างเซิร์ฟเวอร์ MySQL เครื่องที่สองที่เก็บข้อมูลของเรากับเว็บเซิร์ฟเวอร์ของฉันเรามีเพจที่มี DataTable สามรายการอยู่ (แบบสอบถามแยกกันสามรายการ) มันโหลดช้ามาก ถ้าโหลดหมด บางครั้งฉันจะได้รับข้อผิดพลาดการหมดเวลาของเกตเวย์
ฉันไม่คิดว่าคำถามเหล่านี้เป็นปัญหา จาก DataGrip ทั้งสามค่าเฉลี่ยระหว่าง 200-500ms ขณะนี้ข้อความค้นหาไม่ได้รับการจัดทำดัชนีเนื่องจากฉันได้รับแจ้งว่าปลั๊กอินไม่สามารถใช้ประโยชน์จากดัชนีได้ แต่ฉันอาจลองต่อไป
ฮาร์ดแวร์และการตั้งค่า:
เซิร์ฟเวอร์ MySQL ของฉันคือ AWS R6G.Large, 2 คอร์และ RAM ขนาด 16GB, SSD ขนาด 150 IOPS และปริมาณงาน 128 MB innodb_page_size คือ 32, buffer_pool_size คือ 11000M, innodb_buffer_pool_instances คือ 10 และ innodb_log_file_size คือ 1G
เว็บเซิร์ฟเวอร์คือ AWS C6G.Xlarge, 4 คอร์และ RAM 8GB, SSD 150 IOPS และปริมาณงาน 128 MB ใช้ FPM และ Opcache
ฉันได้ลองตรวจสอบโดยใช้ TOP บนทั้งสองเซิร์ฟเวอร์แล้ว แต่พูดตามตรง ฉันไม่แน่ใจว่าฉันมีความรู้ในการใช้ข้อมูลอย่างถูกต้องหรือไม่
ฉันต้องการทราบจริงๆ ว่าเป็นฮาร์ดแวร์หรือซอฟต์แวร์ ด้วยวิธีใด และตรวจสอบว่าเป็นฮาร์ดแวร์หรือไม่ มีวิธีแยกหรือไม่ ฉันไม่มีปัญหาในการเพิ่มฮาร์ดแวร์หากนั่นคือปัญหาจริงๆ
ฉันไม่แน่ใจว่าสิ่งนี้อนุญาตใน Stack / ServerFault หรือไม่ แต่ฉันคิดว่ามันน่าจะง่ายกว่าที่จะรู้ว่าเกิดอะไรขึ้นหากฉันบันทึกหน้าจอโดยที่ TOP ทำงานบนเซิร์ฟเวอร์ทั้งสองเครื่อง ฉันเพิ่มวิดีโอลงใน Google ไดรฟ์สาธารณะของฉัน วิดีโอมีทั้งเซิร์ฟเวอร์ MySQL ของฉัน (ด้านบน) และเว็บเซิร์ฟเวอร์ (Nginx ที่ด้านล่าง) สิ่งที่ฉันทำคือโหลดหน้าเว็บ (เครื่องหมาย 3 วินาทีในวิดีโอ) และบันทึกผลลัพธ์ วิดีโอนี้มีความยาว 1:05 ซึ่งใช้เวลานานเท่าใดกว่าที่ตารางสุดท้ายจะปรากฏ วิดีโอถูกบันทึกในขณะที่ไซต์ของฉันอยู่ในระหว่างการบำรุงรักษา ดังนั้นจึงไม่มี IP / ทราฟฟิกอื่นใดเข้าถึงเซิร์ฟเวอร์ทั้งสองได้
ลิงก์ Google ไดรฟ์ของฉัน:
https://drive.google.com/drive/folders/1NtdE1Z4875i1Xx2Wy2EXGgknt9yuY1IN?usp=sharing
หวังว่าจะมีคนช่วยได้
เอมี่