저는 학생이고 NGS 파이프라인을 벤치마킹하여 할당된 코어 수와 입력 파일 크기를 기반으로 성능을 모니터링하고 싶습니다. 그래서 저는 bash 스크립트를 작성하고 다양한 nr_of_cores 매개변수와 입력 파일을 사용하여 여러 번 호출하고 완료 시간과 기타 통계를 기록했습니다. 다양한 장면을 완성하는 데 전체 작업이 하루 정도 걸렸습니다. (물론 대부분의 시간은 단일 코어에서 가장 큰 파일을 실행하는데 소비되기 때문에 이 시간 동안 전체 서버를 차단하는 것은 아닙니다)
이를 실행하기 위해 공유 64코어 서버에 액세스할 수 있습니다. 그러나 공유 서버의 무료 코어 수는 시간과 프로젝트를 완료하려는 사람들에 따라 크게 다릅니다. (내가 테스트한 가장 높은 nr_of_cores는 작은 파일로 36이었습니다.)
내 질문:명령을 실행하기 전에 [X] 코어를 사용할 수 있다는 것을 알 때까지 내 bash 스크립트를 기다리게 하는 쉬운 방법이 있습니까? 나는 이런 식으로 더 신뢰할 수 있는 데이터를 얻을 수 있고, 더 긴급한 작업을 실행해야 하는 사람들의 속도를 늦추지 않을 것이며, 오늘이 htop을 통해 볼 때까지 기다리지 않고 언제든지 스크립트를 시작할 수 있다고 생각합니다. 느린 하루.
감사해요!
답변1
나중에 시스템을 실행하도록 지시할 수 있고 시스템 관리자가 현명하고 설치되어 있다고 가정하면 at
다음 명령을 사용하여 로드 수준을 충분히 낮게 얻을 수 있습니다(기본적으로 0이지만 시스템 관리자는 임계값에 대해 어떤 값이든 설정할 수 있음) ) :
batch << EOF
<command>
EOF
그 외에 제가 아는 유일한 방법은 부하 평균을 직접 폴링하고 부하 평균이 특정 임계값 아래로 떨어지면 명령을 실행하는 것입니다. 이 경로를 선택하기로 결정한 경우 확인하려는 것은 /proc/loadavg
1분 평균을 제공하는 의 첫 번째 필드입니다.