ฉันได้ปรับใช้เว็บแอป LAMP เป็นสองอินสแตนซ์ AWS แยกกัน (ระบุผลิตภัณฑ์และทดสอบ) ทั้งคู่เป็น t2.micro แต่ผลิตภัณฑ์คืออิมเมจ Linux รุ่นเก่าและการทดสอบคืออิมเมจ Linux 2 ใหม่ การใช้ Chrome browser Dev Tool:
ผลิตภัณฑ์ - เวลาทั้งหมด: ระหว่าง 500ms ถึง 600 ms
ทดสอบ - เวลาทั้งหมด: ระหว่าง 15 วินาทีถึง 50 วินาที
TTFB บน prod น้อยกว่า 100 ms สำหรับไฟล์ที่ดาวน์โหลดทั้งหมด (สคริปต์, css, js ฯลฯ)
TTFB ในการทดสอบคือ 3 วินาทีขึ้นไป...
นี่คือลิงค์ไปยังภาพหน้าจอเครื่องมือ Chrome dev:
ผลการกำหนดเวลาเครื่องมือ Chrome Dev
นอกจากนี้ เวลาในการดาวน์โหลดสำหรับแต่ละไฟล์จะมากขึ้นในอินสแตนซ์ทดสอบ
พวกเขามี apache conf ที่เหมือนกัน, การใช้หน่วยความจำเดียวกัน (~ 50%), รหัสเดียวกัน
ฉันพยายามหาสาเหตุและไม่สามารถหาคำตอบได้ นี่คือการตรวจสอบเพิ่มเติมที่ฉันได้ทำไปแล้ว:
- พยายาม strace และใช้เวลาหลายวินาทีในการรับคำขอถัดไป (3.1s ในตัวอย่างด้านล่าง):
6645 17:28:29 อ่าน (10, 0x55ff6e9b23f8, 8000) = -1 EAGAIN (ทรัพยากรไม่พร้อมใช้งานชั่วคราว) <0.000007>
...
6645 17:28:32 <... แบบสำรวจดำเนินการต่อ> ) = 1 ([{fd=10, revents=POLLIN}]) <3.108490>
- ที่นี่ strace ยังแสดง apache รอเป็นเวลานานมากสำหรับซ็อกเก็ต (fd=10) เพื่อให้พร้อมสำหรับการเขียนอีกครั้งหลังจาก sendfile...
6645 17:28:32 sendfile(10, 11, [76038] => [78918], 69895) = 2880 <0.000009>
6645 17:28:32 แบบสำรวจ([{fd=10, events=POLLOUT}], 1, 60000 <ยังไม่เสร็จ ...>
....
6645 17:28:55 <... แบบสำรวจดำเนินการต่อ> ) = 1 ([{fd=10, revents=POLLOUT}]) <23.333877>
- ฉันได้ลองดาวน์โหลดไฟล์ขนาดใหญ่ (3.6 MB) ผ่าน scp แล้ว ซึ่งเร็วกว่ามาก (~1.7 MB/s) นั่นบอกฉันว่ามีบางอย่างผิดปกติกับ apache หรือ sockets apache กำลังใช้อยู่ใช่ไหม
ความคิดใด ๆ ที่เกิดขึ้นในการทดสอบ? หรือว่านั่นคือความเร็วที่คาดไว้จากอินสแตนซ์ t2.micro EC2
ขอบคุณ,
มาริโอ้.