Điểm:0

Lỗi tạm thời trong Độ phân giải tên PHP-Ubuntu

lá cờ in

Tôi tiếp tục gặp lỗi này rất thường xuyên:

Mức độ nghiêm trọng: Cảnh báo -> mysqli::real_connect(): php_network_getaddresses: getaddrinfo không thành công: Lỗi tạm thời trong việc phân giải tên

Sự cố này chỉ được giải quyết sau khi Máy chủ khởi động lại. Xem xét điều này xảy ra trên một máy chủ trực tiếp có hàng triệu yêu cầu hàng ngày, khởi động lại không phải là một lựa chọn tốt nhất.

[ĐÃ CHỈNH SỬA] Tôi đang sử dụng Ubuntu 18.04 và đang kết nối với Cụm Aurora trên AWS và mã phụ trợ nằm trên EC2

lá cờ in
Không có đủ lượng thông tin ở đây để cung cấp bất kỳ đề xuất hữu ích nào ngoài các mẹo chung có thể tìm thấy trên trang đầu tiên của Google. Bạn có thể [chỉnh sửa] câu hỏi của mình để bao gồm: (1) phiên bản Ubuntu bạn đang sử dụng (2) tên máy chủ mà bạn đang sử dụng để kết nối với MySQL
cyberrspiritt avatar
lá cờ in
đã cập nhật @matigo
Điểm:2
lá cờ in

Có tính đến các chi tiết sau:

  1. hàng triệu yêu cầu hàng ngày
  2. Cụm Aurora trên AWS

Bạn có thể muốn xem hệ thống của mình để đảm bảo rằng bạn không vượt quá hạn ngạch DNS cho tài khoản của bạn.

Một trong những mục nổi bật từ tài liệu hạn ngạch là:

Mỗi phiên bản Amazon EC2 giới hạn số lượng gói có thể được gửi tới máy chủ DNS do Amazon cung cấp tới tối đa 1024 gói mỗi giây mỗi giao diện mạng. Hạn ngạch này không thể được tăng lên. Số lượng truy vấn DNS mỗi giây được máy chủ DNS do Amazon cung cấp hỗ trợ khác nhau tùy theo loại truy vấn, kích thước phản hồi và giao thức đang sử dụng. Để biết thêm thông tin và đề xuất về kiến ​​trúc DNS có thể thay đổi quy mô, hãy xem sách trắng Giải pháp DNS đám mây lai cho Amazon VPC.

Nếu bạn đạt đến hạn ngạch, Amazon Route 53 Resolver sẽ từ chối lưu lượng [...]

Ghi chú: Nhấn mạnh của tôi.

Bit "tối đa 1024 gói mỗi giây" rất quan trọng vì thật sự số lượng gói cho mỗi truy vấn có thể khác nhau và thường có nhiều gói cho mỗi truy vấn DNS.

Nếu (các) máy chủ của bạn đang nhận được hàng triệu yêu cầu mỗi ngày, thì có khả năng cao là (các) máy chủ của bạn đang đạt mức tối đa của gói đó:

  • 1.000.000 yêu cầu / 86.400 giây = 11,574 yêu cầu mỗi giây
  • 11,574 * 4 Gói¹ = gói 46-ish mỗi giây
  • 1024/46 = 22,26 cuộc gọi DNS mỗi giây

Tôi không thể nói đây chắc chắn là vấn đề, nhưng đây là một nơi tốt để bắt đầu tìm kiếm, đặc biệt nếu máy chủ web của bạn thường xuyên có thời gian cao điểm khi lưu lượng truy cập không hoạt động ở mức trung bình ổn định.


¹ Trước đây, tôi đã từng gặp sự cố này, tôi đã đo lường được rằng nhiều yêu cầu DNS yêu cầu trung bình 4 gói cho mỗi cuộc gọi

cyberrspiritt avatar
lá cờ in
Cám ơn phản hồi của bạn. Điều này tôi biết, Nếu tôi đạt yêu cầu tối đa mỗi giây, làm cách nào để giải quyết? Thông thường khởi động lại máy chủ giải quyết nó. Các cách giải quyết để tránh giới hạn đó là gì?
lá cờ in
Tôi chưa tìm được cách tốt, thân thiện với HA để giải quyết vấn đề.Tôi đã thực hiện những việc như DNS kết hợp, v.v., nhưng nếu cụm bị lỗi, DNS cục bộ có thể dẫn đến lỗi kết nối trong vài giây/phút cho đến khi TTL cục bộ hết hạn ... điều này không tốt. Nói chung, tôi đã phải đi sâu vào mã ứng dụng và tìm kiếm các truy vấn SQL đang bị trùng lặp một cách không cần thiết hoặc bị cận thị một cách không cần thiết.
cyberrspiritt avatar
lá cờ in
việc sử dụng các dịch vụ nscd hoặc dnsmasq có giúp không đạt đến giới hạn không? vì họ sẽ lưu trữ các truy vấn NS trong một thời gian?
lá cờ in
Có, miễn là cụm không bao giờ phải chuyển sang phiên bản khác. Nếu không, bạn vẫn đang đợi TTL cục bộ
cyberrspiritt avatar
lá cờ in
Tôi đã cố gắng gỡ lỗi này bằng một bài viết AWS: https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-cause-of-failed-dns-queries/ Số lượng gói nhiều nhất mỗi giây tôi có thể tìm thấy là 26. Nhưng khi tôi thực sự gặp lại lỗi php đó vào ngày hôm nay, số lượng gói ít hơn 15 trong khung thời gian đó.
lá cờ pn
Tôi đã gặp sự cố tương tự và đã viết blog về giải pháp của mình tại đây: https://manuel.kiessling.net/2022/01/27/getting-rid-of-temporary-failures-in-name-resolution-on-aws -ec2/

Đă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.