Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Tcp-backlog trong redis.conf là gì

Tcp-backlog có kích thước bằng "hàng đợi kết nối hoàn chỉnh" (bắt tay ba bước hoàn tất, những gì được mô tả ở đây) hay "hàng đợi kết nối không đầy đủ" không?

tcp-backlog là kích thước của hàng đợi kết nối hoàn chỉnh . Trên thực tế, Redis chuyển cấu hình này làm tham số thứ hai của listen(int s, int backlog) gọi.

@GuangshengZuo đã có câu trả lời tốt cho câu hỏi này. Vì vậy, tôi sẽ tập trung vào cái còn lại.

Nếu nó có nghĩa là "hàng đợi kết nối hoàn chỉnh" thì tại sao tôi phải tăng tcp_max_syn_backlog để giới hạn kích thước của hàng đợi kết nối chưa hoàn chỉnh?

Trích dẫn từ tài liệu bạn đã đề cập:

Việc triển khai sử dụng hai hàng đợi, một hàng đợi SYN (hoặc hàng đợi kết nối không đầy đủ) và một hàng đợi chấp nhận (hoặc hàng đợi kết nối hoàn chỉnh). Các kết nối ở trạng thái SYN RECEIVED được thêm vào hàng đợi SYN và sau đó được chuyển đến hàng đợi chấp nhận khi trạng thái của chúng thay đổi thành ESTABLISHED, tức là khi gói ACK trong bắt tay 3 bước được nhận. Như tên của nó, cuộc gọi chấp nhận sau đó được thực hiện đơn giản để sử dụng các kết nối từ hàng đợi chấp nhận. Trong trường hợp này, đối số tồn đọng của cuộc gọi tổng đài nghe xác định kích thước của hàng đợi chấp nhận.

Chúng tôi có thể thấy rằng các mục trong complete connection queue được di chuyển từ incomplete connection queue .

Nếu bạn có somaxconn lớn với một tcp_max_syn_backlog nhỏ , thì bạn có thể KHÔNG có đủ mục để được chuyển đến complete connection queuecomplete connection queue có thể không bao giờ đầy. Nhiều yêu cầu có thể đã bị loại bỏ từ hàng đợi đầu tiên trước khi chúng có cơ hội được chuyển sang hàng thứ hai.

Vì vậy, chỉ nâng giá trị của somaxconn có thể KHÔNG hoạt động. Bạn phải nâng cao cả hai.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật giá trị Redis

  2. Lợi thế của việc sử dụng chương trình phụ trợ tùy chỉnh phiên Gorilla là gì?

  3. Không có phản hồi sau khi kết nối từ celery sang redis qua ssl

  4. Làm thế nào danh sách Redis có thể được sử dụng để triển khai hệ thống trò chuyện?

  5. sử dụng node-redis với node 8 use.promisify