12개의 코어 서버가 있고 파일을 입력 매개변수로 가져와 처리하는 스크립트를 실행하고 싶습니다. 8개 코어를 사용하고 싶고 더 이상 8개 코어에서 한 번에 8개 파일을 병렬로 처리한 다음 1개 코어의 처리가 완료되면 다음 파일로 건너뛸 필요가 없습니다.
xargs
나는 이것을 시도했습니다 :
ls /data/paths/ | grep new | xargs -i -P 8 -n 1 bash main.sh {}
그런데 코어를 보면 CPU 사용률이 스냅샷에 붙어있습니다.
또한 다음과 같은 병렬 처리를 시도했습니다.
ls /data/paths/ | grep new | parallel -j 8 --no-notice bash main.sh {}
내 조건은 CPU를 8개로 제한해야 한다는 것이다.
편집하다:
실행하면 ps -ef | grep main.sh
8개가 아닌 11~12개의 프로세스가 표시됩니다.