/usr/bin/random은 CPU를 많이 사용합니다.

/usr/bin/random은 CPU를 많이 사용합니다.

pidin timesQNX 6.4.1에는 프로세스에 대한 정보를 표시할 수 있는 명령이 있습니다 . 나는 이것이 PID 정보를 의미한다고 생각합니다. 이 외에도 프로세스가 시작된 이후 사용한 CPU의 양도 확인할 수 있습니다.

/usr/sbin/random내 시스템은 약 10시간 실행 후 거의 2분 동안 프로세서 사용률을 보여주었습니다. 내 코드 호출에는 아무 것도 없기 때문에 이것은 많은 것 같습니다 /usr/sbin/random.

하지만 지금은 네트워크 활동(UDP 및 TCP)이 많아 네트워크 드라이버가 random패킷 충돌로 인해 동적 충돌 백오프 시간을 얻기 위해 호출하는 것인지 궁금합니다.

이 이론이 맞을 수 있을까? (그렇습니다. 얼마나 믿을만한가요?) 그렇지 않다면 추가적으로 확인해야 할 사항이 있나요? 어제는 없었던 대기 시간 문제가 현재 시스템에 발생하고 있으며, 무슨 일이 일어나고 있는지 알고 싶습니다. 이 특정 단서는 문제를 파악하는 데 도움이 될 수 있습니다.


고쳐 쓰다

추가 조사 nicinfo결과 패킷 충돌이 전혀 없는 것으로 나타났습니다. 이것으로 동적 충돌 백오프 시간에 대한 이론을 마무리합니다. 다른 아이디어가 있나요?


또 다른 업데이트

이것이 내 질문에 대한 답을 찾는 데 도움이 되지만(SSHD는 물론 임의성을 사용합니다!!) 주의하세요. SSH를 사용하는 경우 random로그인 작업을 해야 합니다 . 어떤 이유로 내 스크립트의 호출이 random.old작동하지 않고 내 임베디드 시스템이 거의 벽돌로 덮여 있습니다. 그러니 조심해.

답변1

미친 문제 해결 아이디어: 허니팟/가난한 사람의 프로세스 회계를 만듭니다.

  1. 백업하기/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. 이 셸 스크립트 로 바꿉니다 /usr/bin/random(필요한 경우 /tmp와 다른 경로를 사용할 수 있지만 전역적으로 쓰기 가능한지 확인하세요).

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

  5. 시스템을 다시 시작하십시오.

  6. 허니팟 로그에 수집된 내용을 확인하세요. 이는 무작위 배정 프로그램 뒤에 있는 사람/사물에 대한 기록이어야 합니다.

    tail -f /tmp/who_is_calling_random.log
    
  7. random1단계에서 만든 백업에서 복원합니다.

  8. 시스템을 다시 시작하십시오.

관련 정보