Я теж дивувався цьому і мотивував ваше запитання!
Я зібрав, наскільки близько я міг підійти до кожної з перелічених вами черг із деякою інформацією, що стосується кожної. Я вітаю коментарі / відгуки, будь-яке вдосконалення моніторингу полегшує управління!
net.core.somaxconn
net.ipv4.tcp_max_syn_backlog
net.core.netdev_max_backlog
$ netstat -an | grep -c SYN_RECV
Буде показано поточний глобальний підключення в черзі, ви можете розбити це на порт і помістити це в оператори exec в snmpd.conf, якщо ви хочете опитувати його з програми моніторингу.
Від:
netstat -s
Вони покажуть, як часто ви бачите запити з черги:
146533724 packets directly received from backlog
TCPBacklogDrop: 1029
3805 packets collapsed in receive queue due to low socket buffer
fs.file-макс
Від:
http://linux.die.net/man/5/proc
$ cat /proc/sys/fs/file-nr
2720 0 197774
Цей файл (лише для читання) дає кількість відкритих файлів. Він містить три числа: Кількість виділених ручок файлів, кількість вільних ручок файлів та максимальна кількість ручок файлів.
net.ipv4.ip_local_port_range
Якщо ви можете скласти список виключень служб (netstat -an | grep LISTEN), то ви можете встановити, скільки підключень використовується для ефемерної діяльності:
netstat -an | egrep -v "MYIP.(PORTS|IN|LISTEN)" | wc -l
Слід також контролювати (з SNMP):
TCP-MIB::tcpCurrEstab.0
Також може бути цікаво зібрати статистику про всі стани, які бачать у цьому дереві (встановлений / time_wait / fin_wait / тощо):
TCP-MIB::tcpConnState.*
net.core.rmem_max
net.core.wmem_max
Вам потрібно буде відстежувати / напружувати систему для запитів setockopt. Я не думаю, що статистика цих запитів відстежується інакше. Це насправді не цінність, яка змінюється з мого розуміння. Програма, яку ви розгорнули, ймовірно, вимагатиме стандартної суми. Я думаю, ви могли б "профілювати" свою програму з допомогою напруги і відповідно налаштувати це значення. (обговорювати?)
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem
Щоб відстежувати, наскільки ви близькі до межі, вам доведеться переглядати середню та максимум з полів tx_queue та rx_queue (регулярно):
# 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
Для відстеження помилок, пов’язаних із цим:
# netstat -s
40 packets pruned from receive queue because of socket buffer overrun
Також слід контролювати глобальний пул "буфера" (через SNMP):
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: Memory Buffers
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 74172456
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 51629704