Score:0

ความล้มเหลวชั่วคราวใน Name Resolution PHP-Ubuntu

ธง in

ฉันได้รับข้อผิดพลาดนี้บ่อยมาก:

ความร้ายแรง: คำเตือน --> mysqli::real_connect(): php_network_getaddresses: getaddrinfo ล้มเหลว: ความล้มเหลวชั่วคราวในการแก้ไขชื่อ

ปัญหานี้ได้รับการแก้ไขหลังจากรีสตาร์ทเซิร์ฟเวอร์เท่านั้น เมื่อพิจารณาว่าสิ่งนี้เกิดขึ้นบนเซิร์ฟเวอร์ที่ใช้งานจริงซึ่งมีคำขอหลายล้านรายการต่อวัน การรีสตาร์ทจึงไม่ใช่ตัวเลือกที่ดีที่สุด

[แก้ไข] ฉันใช้ Ubuntu 18.04 และเชื่อมต่อกับ Aurora Cluster บน AWS และโค้ดส่วนหลังอยู่บน EC2

in flag
ที่นี่มีข้อมูลไม่เพียงพอที่จะให้คำแนะนำที่เป็นประโยชน์นอกเหนือจากคำแนะนำทั่วไปที่สามารถพบได้ในหน้าแรกของ Google คุณสามารถ [แก้ไข] คำถามของคุณเพื่อรวม: (1) รุ่นของ Ubuntu ที่คุณใช้ (2) ชื่อโฮสต์ที่คุณใช้เพื่อเชื่อมต่อกับ MySQL
cyberrspiritt avatar
in flag
อัปเดต @matigo
Score:2
ธง in

โดยคำนึงถึงรายละเอียดดังต่อไปนี้

  1. คำขอนับล้านต่อวัน
  2. Aurora Cluster บน AWS

คุณอาจต้องการดูที่ระบบของคุณเพื่อให้แน่ใจว่าคุณไม่เกิน โควต้า DNS สำหรับบัญชีของคุณ

หนึ่งในรายการที่โดดเด่นจากเอกสารโควต้าคือ:

แต่ละอินสแตนซ์ของ Amazon EC2 จะจำกัดจำนวนของแพ็กเก็ตที่สามารถส่งไปยังเซิร์ฟเวอร์ DNS ที่ Amazon จัดหาให้ สูงสุด 1024 แพ็กเก็ตต่อวินาที ต่ออินเทอร์เฟซเครือข่าย ไม่สามารถเพิ่มโควต้านี้ได้ จำนวนการสืบค้น DNS ต่อวินาทีที่สนับสนุนโดยเซิร์ฟเวอร์ DNS ของ Amazon จะแตกต่างกันไปตามประเภทของการสืบค้น ขนาดการตอบสนอง และโปรโตคอลที่ใช้งาน สำหรับข้อมูลเพิ่มเติมและคำแนะนำสำหรับสถาปัตยกรรม DNS ที่ปรับขนาดได้ โปรดดูเอกสารรายงานโซลูชัน Hybrid Cloud DNS สำหรับ Amazon VPC

หากคุณใช้งานถึงโควต้า Amazon Route 53 Resolver จะปฏิเสธการรับส่งข้อมูล [...]

บันทึก: เน้นของฉัน

บิต "สูงสุด 1024 แพ็กเก็ตต่อวินาที" มีความสำคัญเนื่องจาก แท้จริง จำนวนแพ็กเก็ตต่อการสืบค้นอาจแตกต่างกันไป และโดยทั่วไปจะมีหลายแพ็กเก็ตต่อการสืบค้น DNS

หากเซิร์ฟเวอร์ของคุณได้รับคำขอหลายล้านรายการต่อวัน มีความเป็นไปได้สูงที่เซิร์ฟเวอร์ของคุณจะเข้าถึงแพ็กเก็ตสูงสุด:

  • 1,000,000 คำขอ / 86,400 วินาที = 11.574 คำขอต่อวินาที
  • 11.574 * 4 แพ็กเก็ต¹ = 46-ish แพ็กเก็ตต่อวินาที
  • 1024/46 = 22.26-ish การเรียก DNS ต่อวินาที

ฉันไม่สามารถพูดได้ว่านี่เป็นปัญหาอย่างแน่นอน แต่นี่เป็นสถานที่ที่ดีในการเริ่มมองหา โดยเฉพาะอย่างยิ่งหากเว็บเซิร์ฟเวอร์ของคุณมีช่วงเวลาเร่งรีบเป็นประจำ ซึ่งทราฟฟิกไม่ได้ทำงานในค่าเฉลี่ยที่ดีและคงที่


¹ จากที่เคยประสบปัญหานี้มาก่อน ฉันวัดได้ว่าคำขอ DNS จำนวนมากต้องการโดยเฉลี่ย 4 แพ็กเก็ตต่อการโทรหนึ่งครั้ง

cyberrspiritt avatar
in flag
ขอบคุณสำหรับการตอบสนองของคุณ ฉันทราบดีว่าหากฉันส่งคำขอถึงจำนวนสูงสุดต่อวินาที ฉันจะแก้ไขได้อย่างไร โดยปกติแล้วการรีสตาร์ทเซิร์ฟเวอร์จะช่วยแก้ปัญหาได้ วิธีแก้ปัญหาเพื่อหลีกเลี่ยงขีดจำกัดนั้นคืออะไร
in flag
ฉันไม่พบวิธีที่ดีและเป็นมิตรกับ HA ในการแก้ไขปัญหาฉันได้ทำสิ่งต่างๆ เช่น DNS แบบไฮบริดและอะไรก็ตาม แต่ถ้าคลัสเตอร์ล้มเหลว DNS ในเครื่องอาจส่งผลให้การเชื่อมต่อล้มเหลวเป็นเวลาหลายวินาที/นาทีจนกว่า TTL ในเครื่องจะหมดอายุ ซึ่งไม่ดีเลย โดยทั่วไป ฉันต้องเข้าไปในรหัสแอปพลิเคชันและค้นหาข้อความค้นหา SQL ที่มีการทำซ้ำโดยไม่จำเป็นหรือสายตาสั้นโดยไม่จำเป็น
cyberrspiritt avatar
in flag
การใช้บริการ nscd หรือ dnsmasq จะช่วยให้ไม่ถึงขีดจำกัดหรือไม่ เนื่องจากพวกเขาจะแคชการสืบค้น NS ในบางครั้ง?
in flag
ใช่ ตราบใดที่คลัสเตอร์ไม่ต้องล้มเหลวไปยังอินสแตนซ์อื่น มิฉะนั้น คุณยังคงรอ TTL ในเครื่องอยู่
cyberrspiritt avatar
in flag
ฉันพยายามแก้ไขข้อบกพร่องนี้โดยใช้บทความ AWS: https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-cause-of-failed-dns-queries/ จำนวนแพ็กเก็ตต่อวินาทีมากที่สุดที่ฉันหาได้คือ 26 แต่เมื่อฉันพบข้อผิดพลาด php อีกครั้งในวันนี้ จำนวนแพ็กเก็ตน้อยกว่า 15 ในช่วงเวลานั้น
pn flag
ฉันพบปัญหาที่คล้ายกันและเขียนบล็อกเกี่ยวกับวิธีแก้ปัญหาของฉันที่นี่: https://manuel.kiessling.net/2022/01/27/getting-rid-of-temporary-failures-in-name-resolution-on-aws -ec2/

โพสต์คำตอบ

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