Tôi đã phát hiện ra vấn đề này khi cố gắng tải một máy chủ websocket tùy chỉnh của node.js, trong đó một số ổ cắm không kết nối được (chúng đã hết thời gian kết nối). Nó dường như không liên quan đến tải hiện tại vì tôi cũng có thể ngẫu nhiên gặp lỗi chỉ trong một thử nghiệm luồng khách.
Điều này dường như không liên quan đến node.js vì tôi cũng có thể tái tạo vấn đề kiểm tra tải nginx phục vụ một trang tĩnh trên cùng một máy chủ. Tỷ lệ thất bại chung dường như nằm trong khoảng từ 7-10% kết nối gửi đến sẽ thất bại.
Đây không phải là một vấn đề trên máy khách cục bộ hoặc kết nối Internet của tôi vì tôi có thể tái tạo vấn đề từ một máy khác ở một địa điểm khác.
Tôi đã kiểm tra tất cả các điều chỉnh thông thường (somaxconn, các tệp mở tối đa, v.v.) và theo như tôi có thể nói là tôi không thể đạt được bất kỳ giới hạn nào. Tôi không thấy bất kỳ mục nào trong syslog liên quan đến vấn đề này. Tôi cũng đã cố gắng vô hiệu hóa hoàn toàn iptables để ngăn chặn mọi sự cố tường lửa.
Máy chủ là Ubuntu LTS 16.04 (i7, 32GB) và là máy chuyên dụng tại cơ sở colo. Trước khi liên hệ với họ, tôi muốn xem liệu tôi có thể tìm thêm dữ liệu về việc liệu đây có phải là sự cố ở cấp độ O / S, cấp độ máy hoặc cấp độ mạng hay không.
Tôi đã có thể chụp được một kết nối không thành công, nhưng tôi không thực sự chắc chắn nên làm gì với nó:
07:19:29.952730 IP localmachine.53949 > server.30312: Flags [S], seq 2408213894, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:19:29.952879 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
07:19:30.951778 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
07:19:32.949553 IP localmachine.53949 > server.30312: Flags [S], seq 2408213894, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:19:32.949650 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
07:19:34.947783 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
07:19:38.947699 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
07:19:38.950399 IP localmachine.53949 > server.30312: Flags [S], seq 2408213894, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:19:38.950438 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
07:19:46.947769 IP server.30312 > localmachine.53949: Flags [S.], seq 1245200353, ack 2408213895, win 28200, options [mss 1410,nop,nop,sackOK,nop,wscale 7], length 0
Có vẻ như ACK từ máy chủ không bao giờ đến được máy khách và máy khách tiếp tục cố gắng để SYN và máy chủ tiếp tục cố gắng phản hồi cho đến khi hết thời gian kết nối. Đây là về nơi kiến thức của tôi khai thác và tôi không thực sự chắc chắn phải làm gì với thông tin này. Điều gì có thể gây ra loại vấn đề này, hoặc tôi nên xem xét điều gì khác?
tcpdump
? Hoặc tất cả các kết nối không thành công được nhóm trong cùng một khoảng thời gian?traceroute
thực hiện trên máy chủ có thể giúp đỡ.tcpdump -e
cũng có thể giúp xem địa chỉ mac.