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 個のプロセスが表示されます。