Lệnh ss ss trong gói iproute; Tại sao bảng truy vấn cho ổ cắm timewait?


15

Hãy tha thứ cho tôi nếu đây không phải là diễn đàn tốt nhất cho câu hỏi này, nhưng nó có vẻ phù hợp với kernel hơn là với chính chương trình.

Tôi đang viết một kịch bản truy vấn hệ thống cho các cổng mở để chúng ta có thể vẽ biểu đồ và theo dõi số liệu thống kê. Đối với điều này, tôi đang sử dụng lệnh "ss" từ gói iproute. Nếu bạn thực hiện, ss -s|grep estabbạn sẽ nhận được đầu ra tương tự như sau:

TCP:   296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0

Câu hỏi của tôi liên quan đến biến timewait, trong đó hiển thị các ổ cắm được tính toán ở trạng thái TIME_WAIT. Khi tôi cố gắng tìm ra con số nào được tham chiếu sau dấu gạch chéo, nó trở thành một cuộc phiêu lưu tìm kiếm mã nguồn cuối cùng khiến tôi tìm thấy đoạn trích sau:

printf("TCP:   %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n",
       s.tcp_total + slabstat.tcp_syns + s.tcp_tws,
       sn.tcp_estab,
       s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws),
       s.tcp_orphans,
       slabstat.tcp_syns,
       s.tcp_tws, slabstat.tcp_tws,
       slabstat.tcp_ports
       );

Tôi phải thừa nhận, việc tôi tìm kiếm "slabstat" có nghĩa là gì cuối cùng đã dẫn đến việc tôi tìm hiểu về bộ đệm và giao diện báo cáo của họ tại / Proc / slabinfo.

Câu hỏi: Slabtable phải làm gì với các tính toán ổ cắm TIME_WAIT? Tôi không thể hiểu tại sao con số này được báo cáo, vì mỗi lần tôi chạy lệnh trên mọi máy chủ tôi đã thử, con số này luôn bằng không.


Thành thật mà nói, có lẽ bạn sẽ nhận được câu trả lời tốt nhất bằng cách đăng bài này lên một trong những danh sách gửi thư hạt nhân có liên quan, xem tux.org/lkml/#related-lists
jeremiahd

Mã chỉ cho thấy có bao nhiêu ổ cắm chờ được phân bổ trong tấm. IMO nó chỉ giúp xác định mức sử dụng bộ nhớ
Ulrich Dangel

Câu trả lời:


0

Dường như đó tcp_tw_bucketslà những gì cuối cùng được thăm dò, đó là một cấu trúc bị loại bỏ kể từ Linux 2.6.12

Vì vậy, số cuối cùng có thể sẽ luôn là 0 trừ khi đó là trên hạt nhân 7 tuổi.

Đối với truy vấn phiến, theo như tôi có thể nói nó nhanh hơn nhiều so với các phương pháp khác có sẵn.


Nếu nó nằm trên kernel trước 2.6.12, giá trị slabstat.tcp_tws có bằng s.tcp_tws không? Có sự khác biệt nào giữa hai giá trị này không? (một là từ / Proc / net / sockstat và một là từ / Proc / slabinfo)
ruanhao 30/03/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.