Tôi cũng đã tự hỏi điều này và được thúc đẩy bởi câu hỏi của bạn!
Tôi đã thu thập mức độ tôi có thể đến gần từng hàng đợi mà bạn đã liệt kê với một số thông tin liên quan đến từng hàng. Tôi hoan nghênh ý kiến / phản hồi, bất kỳ cải tiến nào để giám sát giúp mọi thứ dễ quản lý hơn!
net.core.somaxconn
net.ipv4.tcp_max_syn_backlog
net.core.netdev_max_backlog
$ netstat -an | grep -c SYN_RECV
Sẽ hiển thị số lượng kết nối toàn cầu hiện tại trong hàng đợi, bạn có thể ngắt kết nối này trên mỗi cổng và đưa kết nối này vào câu lệnh exec trong snmpd.conf nếu bạn muốn thăm dò ý kiến từ ứng dụng giám sát.
Từ:
netstat -s
Chúng sẽ cho bạn thấy tần suất bạn thấy các yêu cầu từ hàng đợi:
146533724 packets directly received from backlog
TCPBacklogDrop: 1029
3805 packets collapsed in receive queue due to low socket buffer
fs.file-max
Từ:
http://linux.die.net/man/5/proc
$ cat /proc/sys/fs/file-nr
2720 0 197774
Tệp này (chỉ đọc) cho số lượng tệp hiện được mở. Nó chứa ba số: Số lượng xử lý tệp được phân bổ, số lượng xử lý tệp miễn phí và số lượng xử lý tệp tối đa.
net.ipv4.ip_local_port_range
Nếu bạn có thể xây dựng danh sách loại trừ các dịch vụ (netstat -an | grep LISTEN) thì bạn có thể suy ra có bao nhiêu kết nối đang được sử dụng cho hoạt động phù du:
netstat -an | egrep -v "MYIP.(PORTS|IN|LISTEN)" | wc -l
Cũng nên theo dõi (từ SNMP):
TCP-MIB::tcpCurrEstab.0
Cũng có thể thú vị khi thu thập số liệu thống kê về tất cả các trạng thái được nhìn thấy trong cây này (được thiết lập / time_wait / fin_wait / etc):
TCP-MIB::tcpConnState.*
net.core.rmem_max
net.core.wmem_max
Bạn sẽ phải dtrace / strace hệ thống của bạn cho các yêu cầu setockopt. Tôi không nghĩ rằng số liệu thống kê cho các yêu cầu này được theo dõi khác. Đây thực sự không phải là một giá trị thay đổi từ sự hiểu biết của tôi. Ứng dụng bạn đã triển khai có thể sẽ yêu cầu số tiền tiêu chuẩn. Tôi nghĩ rằng bạn có thể 'hồ sơ' ứng dụng của bạn với strace và định cấu hình giá trị này cho phù hợp. (bàn luận?)
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem
Để theo dõi mức độ gần với giới hạn của bạn, bạn sẽ phải xem mức trung bình và tối đa từ các trường tx_queue và rx_queue từ (một cách thường xuyên):
# cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:0FB1 00000000:0000 0A 00000000:00000000 00:00000000 00000000 500 0 262030037 1 ffff810759630d80 3000 0 0 2 -1
1: 00000000:A133 00000000:0000 0A 00000000:00000000 00:00000000 00000000 500 0 262029925 1 ffff81076d1958c0 3000 0 0 2 -1
Để theo dõi các lỗi liên quan đến điều này:
# netstat -s
40 packets pruned from receive queue because of socket buffer overrun
Cũng nên theo dõi nhóm 'bộ đệm' toàn cầu (thông qua SNMP):
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: Memory Buffers
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 74172456
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 51629704