Điểm:0

Lỗi 500 không liên tục do psycopg2.OperationalError: không thể dịch tên máy chủ

lá cờ de
Zev

20% yêu cầu đối với ứng dụng Django phụ trợ của chúng tôi (được triển khai trên AWS bằng ECS ​​và Postgres RDS) đang đưa ra 500 lỗi. Nhìn vào nhật ký ECS, các lỗi liên quan khác nhau được hiển thị:

psycopg2.OperationalError: không thể dịch tên máy chủ "abc.efg.us-east-1.rds.amazonaws.com" sang địa chỉ
OSError: [Errno 16] Thiết bị hoặc tài nguyên bận
<chức năng tích hợp sẵn getaddrinfo>) không thành công với OSError

Chúng tôi sử dụng gunicorn và gevent để phục vụ ứng dụng của mình:

gunicorn -t 1000 -k gevent -w 4 -b 0.0.0.0:8000 phụ trợ.wsgi

Patrick Mevzek avatar
lá cờ cn
Bạn không nói chính xác máy chủ tên nào bạn đang sử dụng để phân giải tên. Trong nhiều trường hợp, mọi thứ sẽ cải thiện rất nhiều nếu bạn cài đặt trên cùng một hộp một trình giải quyết bộ nhớ đệm cục bộ, đơn giản như `không liên kết`, để có độ ổn định và hiệu suất cao hơn trong việc giải quyết các truy vấn DNS, đặc biệt nếu chúng có cùng tên. ..
Zev avatar
lá cờ de
Zev
Chúng tôi sử dụng Route53 để định tuyến lưu lượng truy cập đến bản phân phối CloudFront để nó là awsdns. Nó gần như phải giống nhau để trình giải quyết bộ đệm có ý nghĩa.
Patrick Mevzek avatar
lá cờ cn
Tôi đang nói cụ thể về một máy chủ tên **đệ quy** được cài đặt càng gần càng tốt (lý tưởng là cùng một hộp) với các ứng dụng thực hiện lệnh gọi DNS. Từ kinh nghiệm, điều này cải thiện mọi thứ. Máy chủ tên có thẩm quyền ở đâu và không liên quan (cho đến khi bạn có thể chứng minh rằng vấn đề thực sự là giữa đệ quy và có thẩm quyền chứ không phải giữa ứng dụng và đệ quy)
Zev avatar
lá cờ de
Zev
Tôi đoán câu trả lời cho câu hỏi ban đầu của bạn sẽ là AmazonProvidedDNS. Cám ơn vì sự gợi ý. Tôi sẽ phải tìm hiểu thêm về lĩnh vực này và hiểu nó nhiều hơn trước khi sửa đổi bất kỳ điều gì nhưng tôi thích âm thanh của giải pháp mà bạn đề xuất.
Điểm:0
lá cờ de
Zev

getaddrinfo là một chức năng gevent chi tiết ở đây: https://www.gevent.org/dns.html

Các tài liệu đó đề cập rằng gevent cung cấp 4 bộ giải quyết. Các trình giải quyết mặc định "Giải quyết tên máy chủ dựa trên chuỗi gốc" đề cập rằng "đã có một số báo cáo về sự chậm trễ kéo dài, hiệu suất chậm hoặc thậm chí bị treo, đặc biệt là trong các chương trình tồn tại lâu dài tạo ra rất nhiều yêu cầu DNS." Và khuyên bạn nên chuyển đổi trình phân giải nếu điều đó xảy ra với bạn.

Chúng tôi đã thay đổi cách cung cấp ứng dụng của mình cho trình phân giải ares và chúng tôi không thể tái tạo sự cố kể từ đó:

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

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.