/ usr / bin / random usando muita CPU

7

Usando o QNX 6.4.1, existe um comando chamado pidin times que mostra informações sobre processos. Eu acho que isso significa informação PID. Entre outras coisas, você pode ver quanta CPU um processo usou desde que foi iniciado.

Eu tenho um sistema que está mostrando quase 2 minutos de utilização do processador para /usr/sbin/random depois que o sistema foi executado por cerca de 10 horas. Isso parece muito, já que nada no meu código chama /usr/sbin/random .

Há muita atividade de rede (UDP e TCP) agora, então estou pensando se o driver de rede está chamando random para obter tempos de recuo de colisão dinâmicos devido a colisões de pacotes.

Esta teoria poderia estar correta? (Ok, quão plausível é isso?) Se não, há algo mais que eu deveria checar? Atualmente, há problemas de latência com esse sistema que não existiam ontem e gostaria de descobrir o que está acontecendo. Essa pista em particular pode ajudar a isolar o problema.

Atualizar

Outras investigações usando nicinfo não revelaram colisões de pacotes. Então, vai a minha teoria do tempo de recuo de colisão dinâmica. Alguma outra ideia?

Outra atualização

Embora isso ajude a encontrar a resposta para o meu problema (o SSHD estava usando aleatoriamente, é claro !!), tenha cuidado. Se você usar o SSH, ele precisará de um random em funcionamento para permitir o logon. Por alguma razão, a chamada no meu script para random.old não funcionou, e eu praticamente limpei meu sistema incorporado. Portanto, tenha cuidado.

    
por kmort 06.06.2014 / 20:00

1 resposta

4

Idéia de solução de problemas mal-intencionada: faça uma contabilidade de processo de honeypot / homem pobre.

  1. Faça um backup de /usr/bin/random

    cp -p /usr/bin/random /usr/bin/random.bak
    
  2. touch /tmp/who_is_calling_random.log ; chmod 622 /tmp/who_is_calling_random.log

  3. Substitua /usr/bin/random por este script de shell (observe que você pode usar um caminho diferente de / tmp se precisar, mas certifique-se de que é gravável por todos).

    #!/bin/sh
    echo "'date' $USER $$ $@" >> /tmp/who_is_calling_random.log
    /usr/bin/random.bak "$@"
    
  4. chmod 755 /usr/bin/random

  5. Reinicie o sistema.

  6. Veja o que se reúne no log do honeypot. Este deve ser um registro de quem / o que está por trás do uso do programa aleatório.

    tail -f /tmp/who_is_calling_random.log
    
  7. Restaurar random do backup que você fez na etapa 1.

  8. Reinicialize o sistema.

por 07.06.2014 / 02:12