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 {}
8 CPUに制限する必要があるという私の条件。
実行するとps -ef | grep main.sh
8ではなく11〜12のプロセスが表示されます。