ฉันมี AWS Application Load Balancer ที่กำหนดค่าด้วย EC2 และกลุ่มปรับขนาดอัตโนมัติ อินสแตนซ์ EC2 เรียกใช้เว็บเซิร์ฟเวอร์ Windows+IIS เว็บเซิร์ฟเวอร์เชื่อมต่อกับฐานข้อมูล
ในบางสถานการณ์ (ทุกๆ 2 เดือน) ที่การตรวจสอบสุขภาพสำหรับ ALB เริ่มตรวจพบว่าแอปพลิเคชันไม่แข็งแรง และทำให้อินสแตนซ์ EC2 หยุดทำงาน มีการเรียกใช้อย่างน้อย 2 อินสแตนซ์เสมอ และสิ่งนี้จะเกิดขึ้นกับทุกอินสแตนซ์พร้อมกันฉันพยายามทำความเข้าใจว่าเหตุใดจึงเกิดขึ้น และไม่พบบันทึกที่เป็นประโยชน์หรือข้อบ่งชี้ว่าสิ่งนี้มาจากไหน
ดูว่าอินสแตนซ์ลดลงเป็นศูนย์ได้อย่างไรในทันใดในวันที่ 6/12:
ซูมเข้า:
อินสแตนซ์ EC2 ถูกยุติเป็น:
การตรวจสุขภาพได้รับการกำหนดค่าให้ ping เพจที่ทำ ไม่ สอบถามฐานข้อมูล ดังนั้นปัญหาคอขวดในฐานข้อมูลจึงดูเหมือนไม่ใช่สาเหตุที่เป็นไปได้
เมื่อเป็นเช่นนั้น เวลาตอบสนองจะพุ่งสูงขึ้น:
และยังวัดโดย NewRelic:
หมายเหตุบางสิ่ง:
- ทุกช่วงของการตอบสนองช้าลง (เวลา Redis, เวลา .NET ฯลฯ)
- มันเกิดขึ้นกับทุกเซิร์ฟเวอร์ในเวลาเดียวกัน ดังนั้นไม่น่ามีปัญหากับภายในเซิร์ฟเวอร์
- มันมักจะเกิดขึ้นนอกเวลาทำการเมื่อโหลดต่ำ
การกำหนดค่าการปรับขนาดอัตโนมัติ:
ความจุขั้นต่ำ = 2
ความจุสูงสุด=15
การกระจายอินสแตนซ์= 50% ตามความต้องการ 50% เฉพาะจุด
รวมความจุพื้นฐานตามความต้องการ=กำหนด 1 อินสแตนซ์แรกเป็นตามความต้องการ
กลยุทธ์การจัดสรรตามความต้องการ=จัดลำดับความสำคัญ
กลยุทธ์การจัดสรรเฉพาะจุด = ราคาต่ำสุด - กระจายไปทั่วกลุ่มราคาต่ำสุด 10 กลุ่ม
ปรับสมดุลความจุ=ปิด
การป้องกันการขยายอินสแตนซ์=ไม่ได้รับการป้องกันจากการขยายขนาดอินสแตนซ์
นโยบายการยกเลิก = ค่าเริ่มต้น
คูลดาวน์เริ่มต้น = 300
การกำหนดค่ากลุ่มเป้าหมาย:
โปรโตคอล = HTTPS
Path=/path/to/login/page
ท่าเรือ = ท่าเรือจราจร
เกณฑ์สุขภาพดี = ตรวจสุขภาพสำเร็จ 2 ครั้งติดต่อกัน
เกณฑ์ไม่ดี = การตรวจสุขภาพล้มเหลว 4 ครั้งติดต่อกัน
หมดเวลา = 20 วินาที
ช่วงเวลา = 25 วินาที
รหัสสำเร็จ = 200