Pesquisando sobre alguns tuning, acabei me deparando sem querer com o comando ss. O comando ss ( socket statistics ) faz parte do pacote iproute2, ou seja, você provavelmente tem ele instalado na sua máquina.
Alguns comandos:
Bom e velho help =)
[root@spookerlabs ~]# ss -h
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
-V, --version output version information
-n, --numeric don't resolve service names
-r, --resolve resolve host names
-a, --all display all sockets
-l, --listening display listening sockets
-o, --options show timer information
-e, --extended show detailed socket information
-m, --memory show socket memory usage
-p, --processes show process using socket
-i, --info show internal TCP information
-s, --summary show socket usage summary
-b, --bpf show bpf filter socket information
-4, --ipv4 display only IP version 4 sockets
-6, --ipv6 display only IP version 6 sockets
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
-d, --dccp display only DCCP sockets
-w, --raw display only RAW sockets
-x, --unix display only Unix domain sockets
-f, --family=FAMILY display sockets of type FAMILY
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE Dump raw information about TCP sockets to FILE
-F, --filter=FILE read filter information from FILE
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
[root@spookerlabs ~]#
Sumário sockets
[root@spookerlabs ~]# ss -s
Total: 99 (kernel 268)
TCP: 7 (estab 1, closed 2, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 268 - -
RAW 0 0 0
UDP 7 4 3
TCP 5 2 3
INET 12 6 6
FRAG 0 0 0
[root@spookerlabs ~]#
Portas em Listen em TCP
[root@spookerlabs ~]# ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:ssh *:*
LISTEN 0 128 :::http :::*
LISTEN 0 128 :::ssh :::*
LISTEN 0 128 :::https :::*
[root@spookerlabs ~]#
Listando conexões baseadas no estado
1. established
2. syn-sent
3. syn-recv
4. fin-wait-1
5. fin-wait-2
6. time-wait
7. closed
8. close-wait
9. last-ack
10. closing
11. all - All of the above states
12. connected - All the states except for listen and closed
13. synchronized - All the connected states except for syn-sent
14. bucket - Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
15. big - Opposite to bucket state.
Exemplo ESTABLISHED
[root@spookerlabs ~]# ss -t state ESTABLISHED
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 88 23.NN.XX.YYY:ssh 179.252.XXX.YY:59858
[root@spookerlabs ~]#
Lembrando que esses são os estados das conexões e quando for fazer um tuning de parametros de protocolo no kernel, é legal ver o que realmente esta acontecendo antes de sair mudando valores com receitas de bolos na internet.
Fonte bnl.gov |
E por útlimo, ele da estatísticas do protocolo que realmente num troubleshooting salvarão o dia (mas exige um nível de nerds mais a fundo =D ):
[root@spookerlabs ~]# ss -t state ESTABLISHED -i
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 72 23.239.24.120:ssh 179.252.240.234:59858
cubic wscale:4,7 rto:423.333 rtt:213.333/17.5 ato:40 mss:1440 cwnd:9 ssthresh:8 send 486.0Kbps unacked:2 retrans:0/2 rcv_rtt:300 rcv_space:28960
[root@spookerlabs ~]#
Alguns links e fontes:
http://linuxaria.com/pills/ss-iproute2-linux?lang=en
http://www.binarytides.com/linux-ss-command/
http://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html
Vou dar uma melhor estudada nos parâmetros listados no último comando para fazer uma postagem decente referente a eles, se souberem de materiais por favor enviem via e-mail ou comentários.
Happy Networking!
Rodrigo "Sp0oKeR" Montoro
Nenhum comentário:
Postar um comentário