ฉันก็สงสัยเช่นนี้และได้รับแรงบันดาลใจจากคำถามของคุณ!
ฉันได้รวบรวมว่าฉันจะเข้ามาใกล้คิวแต่ละรายการที่คุณระบุด้วยข้อมูลบางอย่างที่เกี่ยวข้องกับแต่ละรายการได้อย่างไร ฉันยินดีรับฟังความคิดเห็น / ข้อเสนอแนะการปรับปรุงการตรวจสอบใด ๆ ทำให้การจัดการง่ายขึ้น!
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
คุณต้อง dtrace / strace ระบบของคุณสำหรับคำขอ setsockopt ฉันไม่คิดว่าสถิติสำหรับคำขอเหล่านี้มีการติดตามเป็นอย่างอื่น นี่ไม่ใช่คุณค่าที่เปลี่ยนแปลงจากความเข้าใจของฉัน แอปพลิเคชันที่คุณปรับใช้อาจจะถามจำนวนมาตรฐาน ฉันคิดว่าคุณสามารถ 'โปรไฟล์' แอปพลิเคชันของคุณด้วย strace และกำหนดค่านี้ตามนั้น (หารือเกี่ยว?)
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