Score:0

เพิ่ม TTFB ใน HTTP load balance

ธง pe

เรามีชั้นวางของเราเองในอัมสเตอร์ดัม Leaseweb

เราทำ HTTP load balance (ผ่าน Cloudflare) ด้วยเซิร์ฟเวอร์ Windows 2019 IIS 3 เครื่อง:

  • เซิร์ฟเวอร์ 1: เซิร์ฟเวอร์ซุปเปอร์ไมโครโลหะเปลือย เรียกใช้ IIS, MySQL8 และ Redis
  • เซิร์ฟเวอร์ 2: VM บนเซิร์ฟเวอร์ Dell เรียกใช้ IIS
  • เซิร์ฟเวอร์ 3: VM บนเซิร์ฟเวอร์ Dell (สำเนาถูกต้องของเซิร์ฟเวอร์ 2) เรียกใช้ IIS

ไฟล์จะให้บริการแบบโลคัลในทุกสาเหตุ (ผ่านการจำลองแบบ)

ตอนนี้ปัญหาอยู่ที่ TTFB เช่น วัดในเครื่องบนเซิร์ฟเวอร์ สูงกว่าในเซิร์ฟเวอร์ 2 และเซิร์ฟเวอร์ 3 (VM)

การทดสอบการทำงาน (หลายรายการ) ในเครื่องด้วย Chrome:

เซิร์ฟเวอร์ 1:

  • กำลังรอ (TTFB): 269ms
  • กำลังรอ (TTFB): 255ms
  • กำลังรอ (TTFB): 253ms

เซิร์ฟเวอร์ 2:

  • กำลังรอ (TTFB): 379ms
  • กำลังรอ (TTFB): 376ms
  • กำลังรอ (TTFB): 369ms

เซิร์ฟเวอร์ 3:

  • กำลังรอ (TTFB): 374ms
  • กำลังรอ (TTFB): 381ms
  • กำลังรอ (TTFB): 378ms

อย่างที่คุณเห็น เซิร์ฟเวอร์หนึ่งมี TTFB ที่ต่ำกว่าอย่างมาก ในแง่ของ CPU เซิร์ฟเวอร์ 2 และ 3 นั้นเร็วกว่าจริง ๆ :

สคริปต์มาตรฐาน PHP

เซิร์ฟเวอร์1 เวลาทั้งหมด : : 4.022 วินาที

เซิร์ฟเวอร์2 เวลาทั้งหมด : : 2.866 วินาที

เซิร์ฟเวอร์3 เวลาทั้งหมด : : 2.936 วินาที

I/O นั้นเหมือนกันสำหรับทุกเซิร์ฟเวอร์ พวกเขาทั้งหมดมี SSD ใหม่พร้อมตัวควบคุมการโจมตีด้วยฮาร์ดแวร์

ฉันได้ทดสอบการย้าย Redis ไปยัง VM ตัวใดตัวหนึ่ง เพื่อที่ฉันจะได้ทราบว่าเวลาแฝงที่เพิ่มขึ้นนั้นมาจาก Redis หรือไม่ แต่ก็ไม่ได้สร้างความแตกต่างเลยสักนิด

ข้อสันนิษฐานของฉันคือเวลาแฝงเพิ่มเติมใน TTFB มาจาก MySQL ที่ทำงานบนเซิร์ฟเวอร์ 1 หรือไม่ การเรียกใช้ MySQL บนเซิร์ฟเวอร์เดียวกันทำให้ TTFB มีขนาดเล็กลงอย่างมาก แม้ว่า CPU จะช้ากว่าก็ตาม

มีวิธีแก้ปัญหานี้หรือไม่?

จริงๆ แล้ว คำถามที่ถูกต้องคือ ฉันจะระบุได้อย่างไรว่าสาเหตุของเวลาแฝงเพิ่มเติมคืออะไร

ua flag
TTFB เพื่ออะไร? หน้าเว็บ? อาปาเช่? พีพีเอช? MySQL 8 ในทุกกรณี? เรดดิส?
pe flag
IIS, เว็บเพจ. เรามี MySQL8 หนึ่งอินสแตนซ์ที่ทำงานบนเซิร์ฟเวอร์1
ua flag
CPU กี่คอร์? คุณกำลังแนะนำว่าการมีอยู่ของ MySQL บนเครื่องทำให้การสร้างหน้าเว็บโดย IIS บนเซิร์ฟเวอร์เดียวกันช้าลงหรือไม่
pe flag
ไม่ ตรงกันข้ามเลย บนเครื่องที่ MySQL ทำงาน TTFB จะต่ำกว่า
Wilson Hauck avatar
jp flag
ผลลัพธ์ของ SELECT @@VERSION คืออะไร; บน Server1 และ Server2 และ Server3?
pe flag
สิ่งนี้เหมือนกันสำหรับทุกเซิร์ฟเวอร์: mysql> เลือกรุ่น (); +------------+ | รุ่น () | +------------+ | 8.0.27 | +------------+ 1 แถวในชุด (0.00 วินาที)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา