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개의 프로세스가 표시됩니다.