Para onde vai a espera em rede no 'topo'?

9

Se top está mostrando cargas elevadas e você não sabe se o processo que está causando isso está demorando no processador ou está fazendo a E / S de rede (não a E / S local), como você pode descobrir isso?

No nosso servidor, vejo altos valores de carga, mas em combinação com 60% a 70% ocioso e cerca de 25% de usuário. Gostaria de saber como interceptar esses valores, mas na internet quase sempre leio que você pode usar o iostat para verificar se o processo está destruindo seus discos. Mas eu já sei com certeza que esse não é o caso. O processo em questão também não tem problemas para executar seu trabalho, mas a carga ainda é alta.

Portanto, existe uma maneira de descobrir mais qual parte é causada pela espera da rede e qual parte é causada pelo tempo real do processador? E qual é o significado de 'inativo' no topo?

Para maior clareza: com carga, quero dizer os 3 números que significam a média de processos na fila por núcleo. Existem 8 núcleos nesta máquina e os números chegam a 25, ou seja, uma carga de 2,5 por núcleo.

Jan
fonte
O que você está chamando de "carga": uso da CPU ou os 3 valores "média da carga" (vistos na uptimesaída)?
Spuk
1
A pergunta não faz sentido ... esperar pela E / S da rede não usa nenhum tempo da CPU.
Psusi
2
Eu amo o utilitário htoppara observar processos. Em particular, pode permitir que você selecione um processo e, em seguida, usando o lcomando, mostrará todos os arquivos abertos usando dispositivos de lsofinclusão IPv4e IPv6transmissão e outros. Se você straceinstalou na sua caixa, também pode fazer chamadas do sistema e depurar o sinal. Não é exatamente uma resposta, mas outra ferramenta que eu consideraria para o que você está tentando investigar.
111 ---
Quero dizer os 3 números. Pelo que entendi, eles são chamados de "carga", ou estou errado aqui? Eles representam o número de processos na fila que podem ser executados, mas isso inclui processos com espera de rede ou exclui processos?
Jan
E o que você define como "alto"? A média de carga não é dimensionada para núcleos. por exemplo, um sistema com uma média de carga de 1 e 4 núcleos é 1/4 da carga de um sistema com uma média de carga de 1 e apenas 1 núcleo. A média de carga é um número muito grosso.
21315 bahamat

Respostas:

3

Se top está mostrando cargas elevadas e você não sabe se o processo que está causando isso está demorando no processador ou está fazendo a E / S de rede (não a E / S local), como você pode descobrir isso?

A E / S de rede não é levada em consideração na métrica Linux iowait, a menos que faça parte de uma transação NFS; nesse caso, é considerada como E / S de disco.

Portanto, existe uma maneira de descobrir mais qual parte é causada pela espera da rede e qual parte é causada pelo tempo real do processador?

Fora de uma espera hipotética do NFS, nenhuma parte da carga média é obtida pela espera da rede.

E qual é o significado de 'inativo' no topo?

Isso significa a porcentagem de tempo que a CPU não está em outro estado listado (usuário, sistema, bom, iowait, interrupções de hardware, interrupções de software, roubadas). Isso inclui esperas de rede. Quando inativa, a CPU não faz essencialmente nada. Observe que o iowait também está ocioso, pois a CPU também não faz nada.

jlliagre
fonte
Obrigado pela sua resposta. Portanto, na minha situação em que vejo um alto valor ocioso (60% - 70%) e um estado de usuário mais baixo (cerca de 25%) e baixo iowait, isso pode significar que o servidor está aguardando recursos de rede, se eu entendi corretamente.
Jan
1
Não necessariamente esperando por recursos de rede. Pode ser que a CPU seja rápida o suficiente para concluir tudo o que deve ser feito. A alta carga média é possivelmente causada por um número muito alto de threads competindo simultaneamente por uma CPU, mas durante períodos espúrios muito curtos.
Jlliagre 14/05