100 台のリモート コンピューターにコマンドを配布しようとしていますが、コマンドが 16 台のリモート コンピューターにしか送信されていないことに気付きました。私のローカル マシンには 16 個のコアがあります。100 台ではなく 16 台のリモート コンピューターのみを並列で使用するのはなぜですか?
parallel --eta --sshloginfile list_of_100_remote_computers.txt < list_of_commands.txt
100 台のリモート コンピューターにコマンドを配布しようとしていますが、コマンドが 16 台のリモート コンピューターにしか送信されていないことに気付きました。私のローカル マシンには 16 個のコアがあります。100 台ではなく 16 台のリモート コンピューターのみを並列で使用するのはなぜですか?
parallel --eta --sshloginfile list_of_100_remote_computers.txt < list_of_commands.txt
リモート マシンが 32 コアの場合、16*32 ジョブを実行します。デフォルトでは、GNU Parallel は STDOUT と STDERR のファイル ハンドルを合計 16*32*2 ファイル ハンドル = 1024 ファイル ハンドルで使用します。
デフォルトの GNU/Linux システムを使用している場合、1024 ファイル ハンドル制限に達します。
より多くのジョブを実行する場合--ungroup
は、ファイル ハンドルの制限に達したことを明確に示しています。ulimit -n
制限を増やすために使用します。