Điểm:-1

Quá nhiều kết nối RPC khiến ổ cắm web bị đóng

lá cờ mx

Một số máy chủ được kết nối thông qua RPC. Đôi khi các ứng dụng trong HĐH có quá nhiều cuộc gọi RPC, khiến mạng bị đóng. Cách tốt nhất để gỡ lỗi hoặc cấu hình hệ điều hành của tôi là gì?

"msg":"đang gửi tin nhắn ping: ghi tcp 127.0.0.1:36802->127.0.0.1:1234: sử dụng kết nối mạng đã đóng"
"msg":"xử lý tôi:write tcp4 127.0.0.1:1234->127.0.0.1:56244: write: đường ống bị hỏng"
Doug avatar
lá cờ in
Bạn yêu cầu một câu trả lời chính xác và chi tiết, nhưng cung cấp rất ít chi tiết cho câu hỏi. gRPC thường được sử dụng trong phát triển ứng dụng, vì vậy câu hỏi có thể được chuyển đến Stack Overflow.
Shervin Ivari avatar
lá cờ mx
@Doug Yêu cầu RPC là một cái gì đó chung chung, nhưng có lẽ một số hạn chế trong giao thức TCP là nguyên nhân. Chương trình cho tôi lỗi. Khi tôi theo dõi tài nguyên, mọi thứ có vẻ ổn và tôi tin rằng đó là sự cố với hệ điều hành. Nếu tôi có thể tìm thấy các bản ghi hữu ích ở phía hệ điều hành, Vui lòng chỉ cho tôi bản ghi đó
Doug avatar
lá cờ in
Vâng, đó là một cái gì đó chung chung, đó là lý do tại sao bạn cần phải cụ thể. Bạn đã gắn thẻ RPC và gRPC, vậy chương trình đang sử dụng cái nào? Chương trình này có phải là một cái gì đó phổ biến mà mã nguồn có sẵn hoặc được phát triển nội bộ không? Bạn đã xem tài nguyên nào, ví dụ: netstat hiển thị gì tại thời điểm xảy ra lỗi? Nếu không có một số thông tin để tiếp tục, tôi chỉ có thể đưa ra giả định của mình rằng đây là một ứng dụng gRPC tùy chỉnh được viết kém cần được sửa đổi để sử dụng các kênh một cách thích hợp. Tôi có thể nghĩ ra nhiều giải pháp khác, nhưng không có thông tin nên tôi không thể chọn giải pháp nào để cung cấp cho bạn.
Điểm:0
lá cờ in

Bạn không đề cập đến việc khắc phục sự cố mà bạn đã thực hiện để đi đến kết luận rằng điều này là do có quá nhiều cuộc gọi RPC hoặc bất kỳ chi tiết nào về trạng thái của các kết nối mạng tại thời điểm xảy ra lỗi. Tôi cho rằng lỗi này xảy ra do hết cổng do thiếu kết nối tổng hợp.

Để kiểm tra sự cạn kiệt của cổng, hãy sử dụng netstat để biết trạng thái của các cổng trên máy chủ. Nếu có quá nhiều cổng được liệt kê, bạn có thể gặp sự cố hết cổng.

gRPC gộp các kết nối tự động, tuy nhiên, mã được viết kém có thể ngăn điều này hoạt động bình thường bằng cách tạo quá nhiều kênh gRPC mới thay vì sử dụng lại các kênh hiện có. Tôi đã tham khảo tài liệu của Microsoft vì tài liệu này có mô tả về cách tạo kênh mới dẫn đến việc tạo kết nối HTTP/2 mới.

Để sửa lỗi này, bạn sẽ cần đánh giá mã của mình và sửa đổi mã để sử dụng lại các kênh một cách thích hợp hơn.

Các phương pháp hay nhất về hiệu suất với gRPC

Kênh gRPC nên được sử dụng lại khi thực hiện cuộc gọi gRPC. Việc sử dụng lại một kênh cho phép các cuộc gọi được ghép kênh thông qua kết nối HTTP/2 hiện có.

Nếu một kênh mới được tạo cho mỗi lệnh gọi gRPC thì lượng thời gian cần thiết để hoàn thành có thể tăng lên đáng kể. Mỗi cuộc gọi sẽ yêu cầu nhiều chuyến khứ hồi mạng giữa máy khách và máy chủ để tạo kết nối HTTP/2 mới:

Thực tiễn tốt nhất về hiệu suất

Luôn sử dụng lại sơ khai và kênh khi có thể.

Trong khi làm như vậy, bạn có thể xem xét ổ cắm miền Unix thay vì ổ cắm TCP. Nếu các ứng dụng này cuối cùng sẽ hoạt động được phân phối trên nhiều máy, bạn nên sử dụng ổ cắm TCP. Nếu chúng luôn chạy trên cùng một máy, bạn nên xem xét các ổ cắm tên miền Unix.

Cách tạo dịch vụ GRPC qua ổ cắm cục bộ thay vì inet trong scala/java

máy chủ gRPC bằng Python với ổ cắm tên miền Unix

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