Saya juga bertanya-tanya tentang hal ini dan termotivasi oleh pertanyaan Anda!
Saya telah mengumpulkan seberapa dekat saya bisa datang ke masing-masing antrian yang Anda daftarkan dengan beberapa informasi yang berkaitan dengan masing-masing. Saya menyambut komentar / umpan balik, setiap perbaikan pemantauan membuat segalanya lebih mudah untuk dikelola!
net.core.somaxconn
net.ipv4.tcp_max_syn_backlog
net.core.netdev_max_backlog
$ netstat -an | grep -c SYN_RECV
Akan menunjukkan jumlah koneksi global saat ini dalam antrian, Anda dapat memecah ini per port dan menempatkan ini dalam pernyataan exec di snmpd.conf jika Anda ingin polling dari aplikasi pemantauan.
Dari:
netstat -s
Ini akan menunjukkan seberapa sering Anda melihat permintaan dari antrian:
146533724 packets directly received from backlog
TCPBacklogDrop: 1029
3805 packets collapsed in receive queue due to low socket buffer
fs.file-max
Dari:
http://linux.die.net/man/5/proc
$ cat /proc/sys/fs/file-nr
2720 0 197774
File ini (hanya baca) memberikan jumlah file yang saat ini dibuka. Ini berisi tiga angka: Jumlah pegangan file yang dialokasikan, jumlah pegangan file gratis dan jumlah maksimum menangani file.
net.ipv4.ip_local_port_range
Jika Anda dapat membuat daftar layanan pengecualian (netstat -an | grep LISTEN) maka Anda dapat menyimpulkan berapa banyak koneksi yang digunakan untuk aktivitas sesaat:
netstat -an | egrep -v "MYIP.(PORTS|IN|LISTEN)" | wc -l
Harus juga memantau (dari SNMP):
TCP-MIB::tcpCurrEstab.0
Mungkin juga menarik untuk mengumpulkan statistik tentang semua negara yang terlihat di pohon ini (didirikan / time_wait / fin_wait / etc):
TCP-MIB::tcpConnState.*
net.core.rmem_max
net.core.wmem_max
Anda harus melakukan dtrace / strace sistem Anda untuk permintaan setockopt. Saya tidak berpikir statistik untuk permintaan ini dilacak sebaliknya. Ini sebenarnya bukan nilai yang berubah dari pemahaman saya. Aplikasi yang Anda gunakan mungkin akan meminta jumlah standar. Saya pikir Anda bisa 'membuat profil' aplikasi Anda dengan strace dan mengkonfigurasi nilai ini sesuai. (membahas?)
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem
Untuk melacak seberapa dekat Anda dengan batas Anda harus melihat rata-rata dan maks dari bidang tx_queue dan rx_queue dari (secara teratur):
# 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
Untuk melacak kesalahan yang terkait dengan ini:
# netstat -s
40 packets pruned from receive queue because of socket buffer overrun
Harus juga memantau kumpulan 'penyangga' global (melalui SNMP):
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: Memory Buffers
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 74172456
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 51629704