CPU를 많이 사용하는 다른 프로세스가 실행 중인 경우 프로세스를 일시 중지하고 재개하는 감시 스크립트를 어떻게 생성할 수 있습니까?

CPU를 많이 사용하는 다른 프로세스가 실행 중인 경우 프로세스를 일시 중지하고 재개하는 감시 스크립트를 어떻게 생성할 수 있습니까?

저는 대학의 여러 그룹에서 사용하는 서버에서 며칠 동안 매우 큰 테스트 설정을 실행하고 있습니다.

pid로 프로세스(현재 실행 중인 프로세스가 있는 경우 실행 중인 프로세스)를 일시 중지하고 CPU 집약적인 프로세스가 중지되면 계속 진행하고 싶습니다. 적어도 하나의 코어가 15초 이상 100%로 실행됩니다.

("상위" 출력을 어떻게 해석해야 할지 잘 모르겠지만 CPU 사용량이 2300%인 프로세스가 종종 있습니다. 이는 23개의 코어가 100%에서 실행되거나 22개의 코어가 (100%-x%에서 실행되는 것으로 해석됩니다) ) *22=2300% ETC 실행).

프로세스를 일시 중지하려면 두 가지 bash 명령 중 하나를 선택해야 합니다.

kill -TSTP [pid]

그리고

kill -STOP [pid]

프로세스를 계속하려면 다음을 사용합니다.

kill -CONT [pid]

내 이후로파이썬 스크립트테스트 설정에서 확실하게 실행실행된 프로세스의 런타임 측정혹시 방법이 있는지 묻고 싶습니다프로세스가 실행되는 동안에만 시간을 측정하세요.? (또한 내 Python 스크립트에서 실행되는 프로세스의 내장 함수를 통해 정확한 계산 시간을 측정했지만 일부 의심스러운 결과로 인해(절대 시간은 문제가 있고 상대 시간은 올바른 것 같습니다) 정확도가 떨어지는 경우도 있습니다. 최소한 일부 사용 가능한 시간 측정이 외부에서 가능합니다(파이썬 스크립트).

일반화하다

  1. 이러한 프로세스를 찾고 그에 따라 대응하는 스크립트를 어떻게 설계할 수 있습니까? (서버에 루트가 없지만 실행된 모든 프로세스를 볼 수 있고 직접 처리할 수 있습니다)
  2. 프로세스가 일시 중지된 시간을 제외하고 이러한 프로세스에 대한 정확한 시간 측정(+/- 10초)을 어떻게 얻을 수 있습니까?

관련 정보