| | 382 | * 有時候不見得有安裝 net-tools 套件,沒有 netstat 指令,有沒有辦法透過 procfs 去排查是否有太多 TIME_WAIT 呢? |
| | 383 | * 若單純看 TIME_WAIT 的話,可以觀察 /proc/slabinfo |
| | 384 | {{{ |
| | 385 | cat /proc/slabinfo | grep tw_sock |
| | 386 | }}} |
| | 387 | * 另一個方式是觀察 /proc/net/tcp 與 /proc/net/tcp6 的 st 欄位 |
| | 388 | {{{ |
| | 389 | $ cat /proc/net/tcp | awk '{ print $4 }' | sort | uniq -c |
| | 390 | 3 01 |
| | 391 | 14 06 |
| | 392 | 5 0A |
| | 393 | 1 st |
| | 394 | }}} |
| | 395 | * 對應的數值可於 [http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/net/tcp_states.h tcp_states.h] 查到 |
| | 396 | {{{ |
| | 397 | TCPF_ESTABLISHED = (1 << 1), |
| | 398 | TCPF_SYN_SENT = (1 << 2), |
| | 399 | TCPF_SYN_RECV = (1 << 3), |
| | 400 | TCPF_FIN_WAIT1 = (1 << 4), |
| | 401 | TCPF_FIN_WAIT2 = (1 << 5), |
| | 402 | TCPF_TIME_WAIT = (1 << 6), |
| | 403 | TCPF_CLOSE = (1 << 7), |
| | 404 | TCPF_CLOSE_WAIT = (1 << 8), |
| | 405 | TCPF_LAST_ACK = (1 << 9), |
| | 406 | TCPF_LISTEN = (1 << 10), |
| | 407 | TCPF_CLOSING = (1 << 11), |
| | 408 | TCPF_NEW_SYN_RECV = (1 << 12), |
| | 409 | }}} |
| | 410 | |