Score:0

ข้อผิดพลาด 500 เป็นระยะๆ เกิดจาก psycopg2.OperationalError: ไม่สามารถแปลชื่อโฮสต์ได้

ธง de
Zev

20% ของคำขอที่ส่งไปยังแอปพลิเคชัน Django แบ็กเอนด์ของเรา (ใช้งานบน AWS โดยใช้ ECS และ Postgres RDS) กำลังแสดงข้อผิดพลาด 500 รายการ เมื่อดูที่บันทึก ECS ข้อผิดพลาดที่เกี่ยวข้องต่างๆ จะแสดงขึ้น:

psycopg2.OperationalError: ไม่สามารถแปลชื่อโฮสต์ "abc.efg.us-east-1.rds.amazonaws.com" เป็นที่อยู่
OSError: [Errno 16] อุปกรณ์หรือทรัพยากรไม่ว่าง
<ฟังก์ชันในตัว getaddrinfo>) ล้มเหลวด้วย OSError

เราใช้ gunicorn และ gevent เพื่อให้บริการแอปของเรา:

gunicorn -t 1,000 -k gevent -w 4 -b 0.0.0.0:8000 backend.wsgi

Patrick Mevzek avatar
cn flag
คุณไม่ได้ระบุเนมเซิร์ฟเวอร์ที่คุณใช้เพื่อแก้ไขชื่อ ในหลายกรณี สิ่งต่างๆ ดีขึ้นมากหากคุณติดตั้งตัวแก้ไขการแคชในเครื่องในกล่องเดียวกัน ง่ายๆ อย่าง `unbound' เพื่อให้มีความเสถียรและประสิทธิภาพมากขึ้นในการแก้ไขการสืบค้น DNS โดยเฉพาะอย่างยิ่งหากพวกมันวนเวียนอยู่ในชื่อเดียวกันหลายครั้ง ..
Zev avatar
de flag
Zev
เราใช้ Route53 เพื่อกำหนดเส้นทางทราฟฟิกไปยังการกระจายของ CloudFront ดังนั้นจึงเป็น awsdns เกือบจะเป็นตัวเดียวกัน ดังนั้นตัวแก้ไขการแคชจึงเหมาะสม
Patrick Mevzek avatar
cn flag
ฉันกำลังพูดถึงเนมเซิร์ฟเวอร์ **แบบเรียกซ้ำ** ที่ติดตั้งให้ใกล้เคียงที่สุดเท่าที่จะเป็นไปได้ (ควรเป็นช่องเดียวกัน) กับแอปพลิเคชันที่ทำการเรียก DNS จากประสบการณ์สิ่งนี้ช่วยปรับปรุงสิ่งต่างๆ เซิร์ฟเวอร์ชื่อที่มีสิทธิ์อยู่ที่ไหนและอะไรนั้นไม่เกี่ยวข้อง (จนกว่าคุณจะพิสูจน์ได้ว่าปัญหานั้นอยู่ระหว่างการเรียกซ้ำกับที่มีสิทธิ์จริงๆ ไม่ใช่ระหว่างแอปพลิเคชันและการเรียกซ้ำ)
Zev avatar
de flag
Zev
ฉันเดาว่าคำตอบสำหรับคำถามเดิมของคุณน่าจะเป็น AmazonProvidedDNS ขอบคุณสำหรับคำแนะนำ ฉันจะต้องเจาะลึกลงไปในพื้นที่นี้และทำความเข้าใจให้มากขึ้นก่อนที่จะแก้ไขอะไร แต่ฉันชอบเสียงของวิธีแก้ปัญหาที่คุณแนะนำ
Score:0
ธง de
Zev

รับข้อมูล เป็นฟังก์ชั่น gevent รายละเอียดที่นี่: https://www.gevent.org/dns.html

เอกสารเหล่านั้นระบุว่า gevent มีตัวแก้ไข 4 ตัว เดอะ ตัวแก้ไขเริ่มต้น "การแก้ไขชื่อโฮสต์ตามเธรดเนทีฟ" กล่าวว่า "มีบางรายงานเกี่ยวกับความล่าช้าที่ยาวนาน ประสิทธิภาพการทำงานที่ช้า หรือแม้แต่การแฮงค์ โดยเฉพาะอย่างยิ่งในโปรแกรมที่มีอายุยาวนานซึ่งสร้างคำขอ DNS จำนวนมาก" และแนะนำให้เปลี่ยนตัวแก้ไขหากเกิดขึ้นกับคุณ

เราเปลี่ยนวิธีการให้บริการแอปพลิเคชันของเราไปยังตัวแก้ไข ares และเราไม่สามารถทำให้เกิดปัญหาได้ตั้งแต่:

GEVENT_RESOLVER=ares gunicorn -t 1,000 -k gevent -w 4 -b 0.0.0.0:8000 backend.wsgi

โพสต์คำตอบ

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