
Quero analisar a carga de trabalho de rede do meu servidor Debian 9 para detectar algumas possíveis sobrecargas de rede.
As principais métricas que preciso analisar são:
- CPS (conexões por segundo)
- Taxa de transferência
Existe uma maneira de obter essas métricas no Linux?
Achei que a métrica CPS poderia ser obtida de alguma forma através NEW
de eventos de conexões conntrack, mas não tenho certeza se essa seria a maneira mais adequada.
Desculpe se for óbvio.
PS: este servidor não lida apenas com o tráfego local, mas também encaminha muito tráfego.
Responder1
Acho que seria suficiente descrever as origens dessas métricas com base na API nativa do Linux.
Taxa de transferência
A propósito, oTaxa de transferênciamétrica em geral é algo, isto éexternoem relação ao objeto de teste (OS Linux do qual você está falando). Ou seja, grosso modo, temos dois hosts (por exemplo, cliente e servidor) e objetos de teste entre eles. Explodimos o tráfego de rede entre cliente e servidor e registramos o rendimento (limite) do objeto de teste (por exemplo, comperfeito).
Mas no sistema operacional Linux, uma maneira simples de medir o rendimento é apenas por interface.
Então você pode apenas assistir/proc/net/dev
e calcule odelta de bytes por segundo:
sh-tst# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 87016202 715723 0 0 0 0 0 0 87016202 715723 0 0 0 0 0 0
eth3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 246415305 2899662 0 132906 0 0 0 230 5466117 19016 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CPS
A mesma coisa vale para a métrica CPS. Basicamente é uma medição externa. Mas dentro do seu Linux você pode tentar calculá-lo com base em /proc/net/stat/ip_conntrack
:
sh-tst# cat /proc/net/stat/ip_conntrack
entries searched found new invalid ignore delete delete_list insert insert_failed drop early_drop icmp_error expect_new expect_create expect_delete search_restart
000000f8 00001742 0003142f 0001e85a 00000079 00021333 0001e6cf 00003a3d 00003bc5 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00002389 0005f1a0 0003b6f3 00000085 0004286f 0003b59e 00003cea 00003e3f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 000002c0 00037a77 00000714 00000000 000382cb 00000825 00000724 00000616 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00000225 00026cf9 00000271 00000000 00026e48 00000348 000002bd 000001e6 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Delnstat(8)
homem:
/proc/net/stat/ip_conntrack, /proc/net/stat/nf_conntrack Contadores relacionados ao Conntrack. ip_conntrack é apenas para compatibilidade retroativa com espaço de usuário mais antigo e mostra os mesmos dados que nf_conntrack.
...
novo Número de entradas conntrack adicionadas que não eram esperadas antes.
No rastreamento de conexão do Linux:
NOVO - significa que o pacote iniciou uma nova conexão, ou de outra forma associado a uma conexão que não viu pacotes em ambas as direções, e
Então parece que você quer calculardelta new
por segundo.
Consulte Mais informação:
Responder2
O comando sar que vem com o sysstat fará as duas coisas.
Para monitorar conexões por segundo sar -n TCP 1
ativo/s são as conexões TCP de saída passivo/s são as conexões TCP de entrada
para UDP sar -n UDP 1
Para observar a taxa de transferência da rede sar -n DEV (opcionalmente, adicione 1 para monitorar a corrente por segundo)