011_TCP专项研究监控

(1)In Segs

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

In Segs: tcp协议层收到的数据包个数, in_segs/10 -> op/s;

(2)Out Segs

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);
Out Segs: tcp协议层发送的数据包个数, out_segs/10 -> op/s;

(3)Syn Ack Timeout

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);
Syn Ack Timeout: tcp数据在指定时间内没有受到应答ack而超时的次数, tcp_timeouts/10 -> op/s;

  

(4)Listen Overflow(backlog full) 对应nginx的backlog

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Listen Overflow(backlog full): Listen状态的端口因syn过多导致请求数量超过了sock的最大可积压数量的次数,listen_overflows/10 -> op/s;

(5)Listen drops

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Listen drops: 请求数量超出或者是其他错误原因例如内存不足等导致监听新端口失败的次数, listen_drops/10 -> op/s;

(6)Syn Cookies

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Syn Cookies: SYN cookie是用于阻止SYN flood攻击的技术

syncookie_sent/10: 使用SYN cookie发送的SYN/ACK包数,syncookie_sent/10 -> op/s;
syncookie_recv/10: 收到携带有效SYN cookie包数,syncookie_recv/10 -> op/s;
syncookie_failed/10, 收到无效SYN cookie包数,syncookie_failed/10 -> op/s;

(7)Syn Drops

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);
Syn Drops: syn_table过载,丢掉SYN的次数,tcp_req_q_full_drop/10 -> op/s;

(8)Passive Opens

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

Passive Opens: 被动发送SYN包完成三次握手成功建立连接的次数,passive_opens/10 -> op/s;

(9)Active Opens

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

Active Opens: 主动发送SYN包完成三次握手成功建立连接的次数,active_opens/10 -> op/s;

(10)Out of order packets received

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Out of order packets received: 接收到的乱序包的数量, tcp_ofo_queue/10 -> op/s;

(11)Out of order packets drop(no space)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Out of order packets drop(no space): 因空间不足进入乱序队列被丢弃的包数量,tcp_ofo_drop/10 -> op/s;

(12)Duplicate sack sent(out of order data receive)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Duplicate sack sent(out of order data receive): 发送乱序sack包的次数,tcp_dsack_ofo_sent/10 -> op/s;

(13)Undo cwnd reduction(duplicate sack acked all retransmitted data)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Undo cwnd reduction(duplicate sack acked all retransmitted data): 撤销了发送DSACK包的次数, tcp_dsack_undo/10 -> op/s;

(14)Duplicate sack sent(old data receive)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Duplicate sack sent(old data receive): 发送过期DSACK包的次数, tcp_dsack_old_sent/10 -> op/s;

(15)Delayed acks

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Delayed acks: 发送延迟ACK包的次数,delayed_acks/10 -> op/s;

(16)Delayed ack locked by user

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Delayed ack locked by user: 发送延迟ACK时,用户已经锁定socket而导致ACK再次延迟发送的次数, delayed_ack_locked/10 -> op/s;

(17)Delayed ack lost

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Delayed ack lost: 因为延迟ACK包丢失而再次发送的次数, delayed_ack_lost/10 -> op/s;

(18)Retransmit segs

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

Retransmit segs: tcp层重传的数据包数量,retrans_segs/10 -> op/s;

和tcp滑动窗口和流控:  http://www.52im.net/thread-515-1-1.html (待研究)

(19)Prune called(no space)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Prune called(no space): 由于接收缓冲区空间不足而进行tcp内存回收的次数, prune_called/10 -> op/s;

(20)Receive pruned(purge failed)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Receive pruned(purge failed): 由于接收缓冲区空间不足而进行tcp内存回收后但空间还是不够的次数, rcv_pruned/10 -> op/s;

(21)tcp快速重传

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

tcp_fast_retrans: tcp快速重传的包数量, tcp_fast_retrans/10 -> op/s;

(22)Time waited

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Time waited: timewait状态sock超时后被回收的个数, tw/10 -> op/s;

(23)Time wait killed

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Time wait killed: 使用PAWS机制后释放timewait状态sock的个数, tw_killed/10 -> op/s;

(24)Time wait recycle

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Time wait recycle: 试图进行timewait状态sock回收的次数,当新sock进行connect而hash时与原有的sock或timewait状态的sock冲突时,会触发回收工作, tw_recycled/10 -> op/s;

(25)Abort on timeout

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort on timeout: tcp协议栈各定时器超时重复次数超过最大限制而关闭sock的次数, tcp_abort_on_timeout/10 -> op/s;

(26)Abort on close(data was unread)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort on close(data was unread): 当sock关闭时还有相关数据未读的次数, tcp_abort_on_close/10 -> op/s;

(27)Abort on syn

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort on syn: 接收到错误的syn包(序号错误)导致连接被reset的次数, tcp_abort_on_syn/10 -> op/s

(28)Abort on data

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort on data: 当sock状态在TCP_FIN_WAIT1或TCP_FIN_WAIT2状态已经进入半连接但还是接收到数据而引起连接被reset的次数, tcp_abort_on_data/10 -> op/s;

(29)Abort on linger2(fin-wait2 with tcp_linger2)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort on linger2(fin-wait2 with tcp_linger2): 当sock关闭时状态是TCP_FIN_WAIT2状态直接被reset的次数, tcp_abort_on_linger/10 -> op/s;

(30)Abort on memory(out of memory. should tuning tcp_mem)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort on memory(out of memory. should tuning tcp_mem): 当sock关闭时由于内存不足而直接被reset的次数, tcp_abort_on_memory/10 -> op/s;

(31)Abort failed(alloc/transmit skb failed)

数据源: /proc/net/netstat; 采集方式:累计值,每10秒采集一次取差值; 指标:net.netstat.tcp (key: system);

Abort failed(alloc/transmit skb failed): tcp协议栈在发送reset包而发送失败的次数, tcp_abort_failed/10 -> op/s;

(32)Out rst

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

Out rst: tcp协议层发送的reset数据包的个数, out_rsts/10 -> op/s;

(33)Attempt failed

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

Attempt failed: tcp syn_recv状态被reset的次数, attempt_fails/10 -> op/s;

(34)In checksum errors

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

In checksum errors: tcp协议层接收校验失败的数据包的个数, in_csum_errors/10 -> op/s;

(35)In error

数据源: /proc/net/snmp; 采集方式:累计值,每10秒采集一次取差值; 指标:net.snmp.tcp (key: system);

In error: tcp协议层接收出错的数据包的个数, in_errors/10 -> op/s;
上一篇:Oracle查询死锁&杀死会话


下一篇:BestCoder Round #86 部分题解